package com.yuncheng.oaApi.busService;


import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yuncheng.oaApi.constant.OaCommonFlowConstant;
import com.yuncheng.oaApi.constant.OaFlowConstant;
import com.yuncheng.oaApi.entity.*;
import com.yuncheng.oaApi.service.*;
import com.yuncheng.oaApi.utils.GetUuIdUtils;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import utils.DateConversionUtils;

import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;

@Component(value = "EditYssbService")
public class EditYssbService {
    private static final Logger log = LoggerFactory.getLogger(EditYssbService.class);

    @Resource
    @Lazy
    private INkBmysxmsbsplcService nbmysxmsbsplcService;


    @Resource
    @Lazy
    private INkRsBmysxmsbService nkyrsBmysxmsbService;

    @Resource
    @Lazy
    private INkYssbhjKtService nkYssbhjKtService;

    @Resource
    @Lazy
    private INkYssbhjysService nkYssbhjysService;

    @Resource
    @Lazy
    private INkYssbhjPxService nkYssbhjpxService;


    @Resource
    @Lazy
    private INkYssbjxbjxzbService nkYssbjxzbService;


    @Resource
    @Lazy
    private INkYssbhjjxzbService nkYssbhjjxzbService;

    @Resource
    @Lazy
    private YssbService yssbService;

    @Resource
    @Lazy
    private INkRsNdService nkRsNdService;



    /**
     * 汇总-绩效申报（绩效指标）
     * NK_YSSBJXB_JXZB  绩效指标
     * Id  1822931844607463425
     *
     *
     * NK_YSSBHJJXZB  绩效指标合计
     * 计划id   fb2683f1582a4a1eb5c925da48f2a327
     * Id  1823308156668981256
     */
    public List getyssbjxzb(String flx, String bm){
        List<NkRsnd> nkRsnds = nkRsNdService.list(new LambdaQueryWrapper<NkRsnd>()
                .eq(NkRsnd::getFsfxz, OaCommonFlowConstant.NDXZ_YES));

        int ndi = Integer.valueOf(nkRsnds.get(0).getFnd()) + 1;
        //如果本年度的计划为空，新建计划.然后更新
        String nd = String.valueOf(ndi);

        String jhid = "";
        List<NkBmysxmsbsplc> nkBmysxmsbsplcs = nbmysxmsbsplcService.list(new LambdaQueryWrapper<NkBmysxmsbsplc>()
                .eq(NkBmysxmsbsplc::getFnd, nd));

            jhid = nkBmysxmsbsplcs.get(0).getId();

        List returnbd = new ArrayList();
        //多个
        List hzbd = new ArrayList();
        List ysbd = new ArrayList();
        List esbd = new ArrayList();

        //多个map
        HashMap hzmap = new HashMap();
        HashMap ysmap = new HashMap();

        List<String> flxList = Arrays.asList(flx.split(",|，"));//汇总  一上  二上
        if (flxList.size() == 1) {
            if (flx.equals(OaCommonFlowConstant.HZBD_HZ)) {


                //将数据集成到到汇总表
                //1.使用计划id 绩效申报-绩效指标
                List<NkYssbjxbjxzb> nkYssbjxbjxzbs = nkYssbjxzbService.list(new LambdaQueryWrapper<NkYssbjxbjxzb>()
                        .eq(NkYssbjxbjxzb::getFjhid, jhid));

//                List<NkRsBmysxmsb> nkRsBmysxmsbs = nkyrsBmysxmsbService.list(new LambdaQueryWrapper<NkRsBmysxmsb>()
//                        .eq(NkRsBmysxmsb::getFjhid, jhid));

                //循环这个绩效指标表
                for (NkYssbjxbjxzb nkYssbjxbjxzb : nkYssbjxbjxzbs) {
                    List<NkYssbhjjxzb> nkYssbhjjxzb = new ArrayList<>();
                    //如果绩效指标合计表不为空，就根据绩效指标表更新
//                    if (StringUtils.isNotBlank(bm)){
//                        nkYssbhjjxzb = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
//                                .eq(NkYssbhjjxzb::getFjxzbid, nkYssbjxbjxzb.getId())
//                                .eq(NkYssbhjjxzb::getFlx, OaCommonFlowConstant.HZBD_HZ)
//                                .eq(NkYssbhjjxzb::getFks, bm));
//                    }else {
//                        nkYssbhjjxzb = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
//                                .eq(NkYssbhjjxzb::getFjxzbid, nkYssbjxbjxzb.getId())
//                                .eq(NkYssbhjjxzb::getFlx, OaCommonFlowConstant.HZBD_HZ));
//                    }
                    nkYssbhjjxzb = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
                            .eq(NkYssbhjjxzb::getFjxzbid, nkYssbjxbjxzb.getId())
                            .eq(NkYssbhjjxzb::getFlx, OaCommonFlowConstant.HZBD_HZ));
                    if (CollectionUtils.isNotEmpty(nkYssbhjjxzb)) {
                        NkYssbhjjxzb nkYssbhjjxzb1 = nkYssbhjjxzb.get(0);

                        nkYssbhjjxzb1.setFjxsbbid(nkYssbjxbjxzb.getFyssbxjid());
                        nkYssbhjjxzb1.setFjhid(nkYssbjxbjxzb.getFjhid());
                        nkYssbhjjxzb1.setFks(nkYssbjxbjxzb.getFks());
                        nkYssbhjjxzb1.setFjxsblx(nkYssbjxbjxzb.getFlx());
                        nkYssbhjjxzb1.setFnd(nd);

                        nkYssbhjjxzb1.setFyjzblx(nkYssbjxbjxzb.getFyjzblx());
                        nkYssbhjjxzb1.setFejzblx(nkYssbjxbjxzb.getFejzblx());

                        nkYssbhjjxzb1.setFjxzbid(nkYssbjxbjxzb.getId());
                        nkYssbhjjxzb1.setFsjzb(nkYssbjxbjxzb.getFsjzb());
                        nkYssbhjjxzb1.setFzbz(nkYssbjxbjxzb.getFzbz());
                        //类型
                        nkYssbhjjxzb1.setFlx(OaCommonFlowConstant.HZBD_HZ);

                        nkYssbhjjxzbService.updateById(nkYssbhjjxzb1);
                    } else {
                        NkYssbhjjxzb nkYssbhjjxzb2 = new NkYssbhjjxzb();


                        nkYssbhjjxzb2.setFjxsbbid(nkYssbjxbjxzb.getFyssbxjid());
                        nkYssbhjjxzb2.setFjhid(nkYssbjxbjxzb.getFjhid());
                        nkYssbhjjxzb2.setFks(nkYssbjxbjxzb.getFks());
                        nkYssbhjjxzb2.setFjxsblx(nkYssbjxbjxzb.getFlx());
                        nkYssbhjjxzb2.setFnd(nd);
                        nkYssbhjjxzb2.setFjxzbid(nkYssbjxbjxzb.getId());
                        nkYssbhjjxzb2.setFyjzblx(nkYssbjxbjxzb.getFyjzblx());
                        nkYssbhjjxzb2.setFejzblx(nkYssbjxbjxzb.getFejzblx());

                        nkYssbhjjxzb2.setFsjzb(nkYssbjxbjxzb.getFsjzb());
                        nkYssbhjjxzb2.setFzbz(nkYssbjxbjxzb.getFzbz());

                        //类型
                        nkYssbhjjxzb2.setFlx(OaCommonFlowConstant.HZBD_HZ);
                        nkYssbhjjxzbService.save(nkYssbhjjxzb2);
                    }


                }
                if (StringUtils.isNotBlank(bm)){
                    returnbd = yssbService.hzjxzbss(jhid,bm,OaCommonFlowConstant.HZBD_HZ);
                }else {
                    returnbd = yssbService.hzjxzbss(jhid,OaCommonFlowConstant.HZBD_HZ);
                }

            }


            if (flx.equals(OaFlowConstant.YSSBLC_CWSH_YS)) {
                List<NkYssbhjjxzb> nkYssbhjjxzb = new ArrayList<>();
                if (StringUtils.isNotBlank(bm)){
                    nkYssbhjjxzb = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
                            .eq(NkYssbhjjxzb::getFjhid,jhid)
                            .eq(NkYssbhjjxzb::getFlx, OaFlowConstant.YSSBLC_CWSH_YS)
                            .eq(NkYssbhjjxzb::getFks, bm));
                }else {
                    nkYssbhjjxzb = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
                            .eq(NkYssbhjjxzb::getFjhid,jhid)
                            .eq(NkYssbhjjxzb::getFlx, OaFlowConstant.YSSBLC_CWSH_YS));
                }



                if (CollectionUtils.isEmpty(nkYssbhjjxzb)) {
                    //通过计划id 和 汇总 查询所有数据
                    List<NkYssbhjjxzb> nkYssbhjjxzbhz = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
                            .eq(NkYssbhjjxzb::getFjhid, jhid)
                            .eq(NkYssbhjjxzb::getFlx, OaCommonFlowConstant.HZBD_HZ));


                    //如果汇总不为空
                    if (CollectionUtils.isNotEmpty(nkYssbhjjxzbhz)) {
                        List<NkYssbhjjxzb> itemsToInsert = new ArrayList<>(nkYssbhjjxzbhz.size());

                        for (NkYssbhjjxzb originalItem : nkYssbhjjxzbhz) {
                            try {
                                // 使用BeanUtils.copyProperties复制对象
                                NkYssbhjjxzb newItem = new NkYssbhjjxzb();
                                BeanUtils.copyProperties(newItem, originalItem);
                                newItem.setId(GetUuIdUtils.ReplaceUuId());
                                // 修改复制对象的flx字段
                                newItem.setFlx(OaFlowConstant.YSSBLC_CWSH_YS); // 将"新状态值"替换为新值

                                // 添加到待插入列表
                                itemsToInsert.add(newItem);
                            } catch (Exception e) {
                                // 处理复制属性时可能发生的异常，如类型转换异常
                                log.error("复制NkYssbhj对象属性时发生错误", e);
                                // 可能需要进一步处理，比如记录错误日志、中断循环等
                            }
                        }

                        // 批量插入到数据库
                        boolean batchInsertSuccess = nkYssbhjjxzbService.saveBatch(itemsToInsert);

                        if (!batchInsertSuccess) {
                            // 处理批量插入失败的情况
                            log.error("批量插入NkYssbhj数据失败");
                        }

                    }
                }

                //然后返回数据
                if (StringUtils.isNotBlank(bm)){
                    returnbd = yssbService.hzjxzbss(jhid,bm,OaFlowConstant.YSSBLC_CWSH_YS);
                }else {
                    returnbd = yssbService.hzjxzbss(jhid,OaFlowConstant.YSSBLC_CWSH_YS);
                }


            }


            if (flx.equals(OaFlowConstant.YSSBLC_CWSH_ES)) {
                List<NkYssbhjjxzb> nkYssbhjjxzb = new ArrayList<>();
                if (StringUtils.isNotBlank(bm)){
                    nkYssbhjjxzb = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
                            .eq(NkYssbhjjxzb::getFjhid,jhid)
                            .eq(NkYssbhjjxzb::getFlx, OaFlowConstant.YSSBLC_CWSH_ES)
                            .eq(NkYssbhjjxzb::getFks, bm));
                }else {
                    nkYssbhjjxzb = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
                            .eq(NkYssbhjjxzb::getFjhid,jhid)
                            .eq(NkYssbhjjxzb::getFlx, OaFlowConstant.YSSBLC_CWSH_ES));


                }


                if (CollectionUtils.isEmpty(nkYssbhjjxzb)) {


                    //通过计划id 和 一上 查询所有数据

                    List<NkYssbhjjxzb> nkYssbhjjxzbys = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
                            .eq(NkYssbhjjxzb::getFjhid, jhid)
                            .eq(NkYssbhjjxzb::getFlx, OaFlowConstant.YSSBLC_CWSH_YS));


                    if (CollectionUtils.isNotEmpty(nkYssbhjjxzbys)) {
                        List<NkYssbhjjxzb> itemsToInsert = new ArrayList<>(nkYssbhjjxzbys.size());

                        for (NkYssbhjjxzb originalItem : nkYssbhjjxzbys) {
                            try {
                                // 使用BeanUtils.copyProperties复制对象
                                NkYssbhjjxzb newItem = new NkYssbhjjxzb();
                                BeanUtils.copyProperties(newItem, originalItem);
                                newItem.setId(GetUuIdUtils.ReplaceUuId());
                                // 修改复制对象的flx字段
                                newItem.setFlx(OaFlowConstant.YSSBLC_CWSH_ES); // 将"新状态值"替换为新值

                                // 添加到待插入列表
                                itemsToInsert.add(newItem);
                            } catch (Exception e) {
                                // 处理复制属性时可能发生的异常，如类型转换异常
                                log.error("复制NkYssbhj对象属性时发生错误", e);
                                // 可能需要进一步处理，比如记录错误日志、中断循环等
                            }
                        }

                        // 批量插入到数据库
                        boolean batchInsertSuccess = nkYssbhjjxzbService.saveBatch(itemsToInsert);

                        if (!batchInsertSuccess) {
                            // 处理批量插入失败的情况
                            log.error("批量插入NkYssbhj数据失败");
                        }

                    }
                }

                //然后返回数据
                if (StringUtils.isNotBlank(bm)){
                    returnbd = yssbService.hzjxzbss(jhid,bm,OaFlowConstant.YSSBLC_CWSH_ES);
                }else {
                    returnbd = yssbService.hzjxzbss(jhid,OaFlowConstant.YSSBLC_CWSH_ES);
                }


            }
        } else {
            if (StringUtils.isNotBlank(bm)){
                for (String flxLists : flxList) {
                    if (flxLists.equals(OaCommonFlowConstant.HZBD_HZ)) {
                        hzbd = yssbService.hzjxzbss(jhid,bm,OaCommonFlowConstant.HZBD_HZ);
                    } else if (flxLists.equals(OaFlowConstant.YSSBLC_CWSH_YS)) {
                        ysbd = yssbService.hzjxzbss(jhid,bm,OaFlowConstant.YSSBLC_CWSH_YS);
                    } else if (flxLists.equals(OaFlowConstant.YSSBLC_CWSH_ES)) {
                        esbd = yssbService.hzjxzbss(jhid,bm,OaFlowConstant.YSSBLC_CWSH_ES);
                    }

                }
            }else {
                for (String flxLists : flxList) {
                    if (flxLists.equals(OaCommonFlowConstant.HZBD_HZ)) {
                        hzbd = yssbService.hzjxzbss(jhid,OaCommonFlowConstant.HZBD_HZ);
                    } else if (flxLists.equals(OaFlowConstant.YSSBLC_CWSH_YS)) {
                        ysbd = yssbService.hzjxzbss(jhid,OaFlowConstant.YSSBLC_CWSH_YS);
                    } else if (flxLists.equals(OaFlowConstant.YSSBLC_CWSH_ES)) {
                        esbd = yssbService.hzjxzbss(jhid,OaFlowConstant.YSSBLC_CWSH_ES);
                    }

                }
            }
            hzmap.put("hzbd", hzbd);
            hzmap.put("ysbd", ysbd);
            hzmap.put("esbd", esbd);

            returnbd.add(hzmap);

        }
        return returnbd;

    }


    /**
     * 编辑 一上/绩效申报
     */
    public List editYsjxhj(NkYssbhjjxzb nkYssbhjjxzb) {
        if (StringUtils.isNotBlank(nkYssbhjjxzb.getId())) {
            NkYssbhjjxzb yssbhjjxzb = nkYssbhjjxzbService.getById(nkYssbhjjxzb.getId());
            //如果不为空，在继续判断
            if (yssbhjjxzb != null) {

                if (StringUtils.isNotBlank(nkYssbhjjxzb.getFsjzb()) || StringUtils.isNotBlank(nkYssbhjjxzb.getFzbz())) {

                    nkYssbhjjxzb.setFsjzb(nkYssbhjjxzb.getFsjzb());
                    nkYssbhjjxzb.setFzbz(nkYssbhjjxzb.getFzbz());


                    //如果不为空，先将字段更新进表内，在查询然后计算
                    nkYssbhjjxzbService.updateById(nkYssbhjjxzb);
                }


                List<String> deptList = CollectionUtil.newArrayList(
                        OaFlowConstant.KSMC_BGS,
                        OaFlowConstant.KSMC_RJK,
                        OaFlowConstant.KSMC_ZLGLYKYK,
                        OaFlowConstant.KSMC_YPZCSPCYK,
                        OaFlowConstant.KSMC_YPSCCYK,
                        OaFlowConstant.KSMC_YPLTCYK,
                        OaFlowConstant.KSMC_YLQXSPCYK_1,
                        OaFlowConstant.KSMC_YLQXSPCYK_2,
                        OaFlowConstant.KSMC_SPHZPPSCYK
                );

                List<String> jxzbmcMlList = CollectionUtil.newArrayList(
                        OaFlowConstant.JXSB_LWF,
                        OaFlowConstant.JXSB_CLF,
                        OaFlowConstant.JXSB_PXF,
                        OaFlowConstant.JXSB_YXF,
                        OaFlowConstant.JXSB_KTF
                );

                List<String> lxMlList = CollectionUtil.newArrayList(
                        "产出指标",
                        "效益指标",
                        "满意度指标"
                );

                List<String> lxmcDataMl1List = CollectionUtil.newArrayList(
                        "数量指标",
                        "质量指标",
                        "时效指标",
                        "成本指标"
                );

                List<String> lxmcDataMl2List = CollectionUtil.newArrayList(
                        "社会效益指标",
                        "可持续影响指标"
                );

                List<String> lxmcDataMl3List = CollectionUtil.newArrayList(
                        "服务对象满意度指标"
                );

                Map lxmcDataMap = new HashMap();
                lxmcDataMap.put("产出指标", lxmcDataMl1List);
                lxmcDataMap.put("效益指标", lxmcDataMl2List);
                lxmcDataMap.put("满意度指标", lxmcDataMl3List);

                List<Map> resultMap = new ArrayList<>(deptList.size());

                List<NkYssbhjjxzb> zbOrgDataList = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
                        .eq(NkYssbhjjxzb::getFjhid, yssbhjjxzb.getFjhid())
                        .eq(NkYssbhjjxzb::getFlx, OaFlowConstant.YSSBLC_CWSH_YS));


                int total = 0;
                int jxzbmcSize = 0;
                int lxmcSize = 0;
                int slzbSize = 0;

                int index = -1;
                int dataIndex = 0;

                for (String ksmc : deptList){
                    Map ksmcMap = new HashMap();
                    List<Map> jxzbmcList = new ArrayList<>();

                    List<NkYssbhjjxzb> ksZbDataList = zbOrgDataList.stream()
                            .filter(f ->
                                    f.getFks().equals(ksmc)
                            )
                            .collect(Collectors.toList());

                    total = 0;
                    for (String jxzbmc : jxzbmcMlList){
                        Map jxzbmcMap = new HashMap();
                        List<Map> lxList = new ArrayList<>();

                        jxzbmcSize = 0;
                        index = -1;

                        dataIndex = 0;
                        for (String lxmc : lxMlList){
                            Map lxmcMap = new HashMap();
                            List<Map> lxmcDataList = new ArrayList<>();

                            List<String> slzbList = (List<String>) lxmcDataMap.get(lxmc);

                            List<NkYssbhjjxzb> zlzbDataList = ksZbDataList.stream()
                                    .filter(f ->
                                            f.getFjxsblx().equals(jxzbmc) && f.getFyjzblx().equals(lxmc)
                                    )
                                    .collect(Collectors.toList());

                            lxmcSize = 0;
                            slzbSize = 0;

                            for (String slzb : slzbList){
                                Map slzbMap = new HashMap();
                                List<Map> zbDataList = new ArrayList<>();

                                List<NkYssbhjjxzb> keyValueList = zlzbDataList.stream()
                                        .filter(f ->
                                                f.getFejzblx().equals(slzb)
                                        )
                                        .collect(Collectors.toList());

                                for (NkYssbhjjxzb data : keyValueList){
                                    Map slzbDataMap = new HashMap();
                                    String key = "";
                                    String value = "";

                                    key = Optional.ofNullable(data.getFsjzb()).orElse("");
                                    value = Optional.ofNullable(data.getFzbz()).orElse("");
                                    slzbDataMap.put("id",data.getId());
                                    slzbDataMap.put("key", key);
                                    slzbDataMap.put("value", value);
                                    zbDataList.add(slzbDataMap);
                                }

                                slzbMap.put("slzb", slzb);
                                slzbMap.put("zbDataList", zbDataList);
                                slzbSize = zbDataList.size();
                                slzbMap.put("size", slzbSize);

                                lxmcSize += slzbSize;
                                lxmcDataList.add(slzbMap);
                            }

                            if (index == -1 && lxmcSize > 0){
                                index = dataIndex;
                            }
                            dataIndex++;
                            lxmcMap.put("lxmc", lxmc);
                            lxmcMap.put("lxmcDataList", lxmcDataList);
                            lxmcMap.put("size", lxmcSize);

                            jxzbmcSize += lxmcSize;
                            lxList.add(lxmcMap);
                        }

                        jxzbmcMap.put("fjssblx", jxzbmc);
                        jxzbmcMap.put("lxList", lxList);
                        jxzbmcMap.put("size", jxzbmcSize);
                        jxzbmcMap.put("index", index);
                        total += jxzbmcSize;
                        jxzbmcList.add(jxzbmcMap);
                    }

                    ksmcMap.put("ksmc", ksmc);
                    ksmcMap.put("jxzbmcList", jxzbmcList);
                    ksmcMap.put("size", total);

                    resultMap.add(ksmcMap);
                }

                return resultMap;
            }

        }
        return null;
    }
    /**
     * 编辑 一上/绩效申报 没有id的时候
     * @param nkYssbhjjxzb
     * @return
     */
    public List editYsjxhjs(NkYssbhjjxzb nkYssbhjjxzb){
        if (StringUtils.isNotBlank(nkYssbhjjxzb.getFjhid())) {

            List<String> deptList = CollectionUtil.newArrayList(
                    OaFlowConstant.KSMC_BGS,
                    OaFlowConstant.KSMC_RJK,
                    OaFlowConstant.KSMC_ZLGLYKYK,
                    OaFlowConstant.KSMC_YPZCSPCYK,
                    OaFlowConstant.KSMC_YPSCCYK,
                    OaFlowConstant.KSMC_YPLTCYK,
                    OaFlowConstant.KSMC_YLQXSPCYK_1,
                    OaFlowConstant.KSMC_YLQXSPCYK_2,
                    OaFlowConstant.KSMC_SPHZPPSCYK
            );

            List<String> jxzbmcMlList = CollectionUtil.newArrayList(
                    OaFlowConstant.JXSB_LWF,
                    OaFlowConstant.JXSB_CLF,
                    OaFlowConstant.JXSB_PXF,
                    OaFlowConstant.JXSB_YXF,
                    OaFlowConstant.JXSB_KTF
            );

            List<String> lxMlList = CollectionUtil.newArrayList(
                    "产出指标",
                    "效益指标",
                    "满意度指标"
            );

            List<String> lxmcDataMl1List = CollectionUtil.newArrayList(
                    "数量指标",
                    "质量指标",
                    "时效指标",
                    "成本指标"
            );

            List<String> lxmcDataMl2List = CollectionUtil.newArrayList(
                    "社会效益指标",
                    "可持续影响指标"
            );

            List<String> lxmcDataMl3List = CollectionUtil.newArrayList(
                    "服务对象满意度指标"
            );

            Map lxmcDataMap = new HashMap();
            lxmcDataMap.put("产出指标", lxmcDataMl1List);
            lxmcDataMap.put("效益指标", lxmcDataMl2List);
            lxmcDataMap.put("满意度指标", lxmcDataMl3List);

            List<Map> resultMap = new ArrayList<>(deptList.size());

            List<NkYssbhjjxzb> zbOrgDataList = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
                    .eq(NkYssbhjjxzb::getFjhid, nkYssbhjjxzb.getFjhid())
                    .eq(NkYssbhjjxzb::getFlx, OaFlowConstant.YSSBLC_CWSH_YS));


            int total = 0;
            int jxzbmcSize = 0;
            int lxmcSize = 0;
            int slzbSize = 0;

            int index = -1;
            int dataIndex = 0;

            for (String ksmc : deptList){
                Map ksmcMap = new HashMap();
                List<Map> jxzbmcList = new ArrayList<>();

                List<NkYssbhjjxzb> ksZbDataList = zbOrgDataList.stream()
                        .filter(f ->
                                f.getFks().equals(ksmc)
                        )
                        .collect(Collectors.toList());

                total = 0;
                for (String jxzbmc : jxzbmcMlList){
                    Map jxzbmcMap = new HashMap();
                    List<Map> lxList = new ArrayList<>();

                    jxzbmcSize = 0;
                    index = -1;

                    dataIndex = 0;
                    for (String lxmc : lxMlList){
                        Map lxmcMap = new HashMap();
                        List<Map> lxmcDataList = new ArrayList<>();

                        List<String> slzbList = (List<String>) lxmcDataMap.get(lxmc);

                        List<NkYssbhjjxzb> zlzbDataList = ksZbDataList.stream()
                                .filter(f ->
                                        f.getFjxsblx().equals(jxzbmc) && f.getFyjzblx().equals(lxmc)
                                )
                                .collect(Collectors.toList());

                        lxmcSize = 0;
                        slzbSize = 0;

                        for (String slzb : slzbList){
                            Map slzbMap = new HashMap();
                            List<Map> zbDataList = new ArrayList<>();

                            List<NkYssbhjjxzb> keyValueList = zlzbDataList.stream()
                                    .filter(f ->
                                            f.getFejzblx().equals(slzb)
                                    )
                                    .collect(Collectors.toList());

                            for (NkYssbhjjxzb data : keyValueList){
                                Map slzbDataMap = new HashMap();
                                String key = "";
                                String value = "";

                                key = Optional.ofNullable(data.getFsjzb()).orElse("");
                                value = Optional.ofNullable(data.getFzbz()).orElse("");
                                slzbDataMap.put("id",data.getId());
                                slzbDataMap.put("key", key);
                                slzbDataMap.put("value", value);
                                zbDataList.add(slzbDataMap);
                            }

                            slzbMap.put("slzb", slzb);
                            slzbMap.put("zbDataList", zbDataList);
                            slzbSize = zbDataList.size();
                            slzbMap.put("size", slzbSize);

                            lxmcSize += slzbSize;
                            lxmcDataList.add(slzbMap);
                        }

                        if (index == -1 && lxmcSize > 0){
                            index = dataIndex;
                        }
                        dataIndex++;
                        lxmcMap.put("lxmc", lxmc);
                        lxmcMap.put("lxmcDataList", lxmcDataList);
                        lxmcMap.put("size", lxmcSize);

                        jxzbmcSize += lxmcSize;
                        lxList.add(lxmcMap);
                    }

                    jxzbmcMap.put("fjssblx", jxzbmc);
                    jxzbmcMap.put("lxList", lxList);
                    jxzbmcMap.put("size", jxzbmcSize);
                    jxzbmcMap.put("index", index);
                    total += jxzbmcSize;
                    jxzbmcList.add(jxzbmcMap);
                }

                ksmcMap.put("ksmc", ksmc);
                ksmcMap.put("jxzbmcList", jxzbmcList);
                ksmcMap.put("size", total);

                resultMap.add(ksmcMap);
            }

            return resultMap;
        }
        return null;
    }
    /**
     * 编辑 二上/绩效申报
     */
    public List editEsjxhj(NkYssbhjjxzb nkYssbhjjxzb){
        if (StringUtils.isNotBlank(nkYssbhjjxzb.getId())) {
            NkYssbhjjxzb yssbhjjxzb = nkYssbhjjxzbService.getById(nkYssbhjjxzb.getId());
            //如果不为空，在继续判断
            if (yssbhjjxzb != null) {
                //如果不为空，先将字段更新进表内，在查询然后计算
                nkYssbhjjxzbService.updateById(nkYssbhjjxzb);
            }


            List<String> deptList = CollectionUtil.newArrayList(
                    OaFlowConstant.KSMC_BGS,
                    OaFlowConstant.KSMC_RJK,
                    OaFlowConstant.KSMC_ZLGLYKYK,
                    OaFlowConstant.KSMC_YPZCSPCYK,
                    OaFlowConstant.KSMC_YPSCCYK,
                    OaFlowConstant.KSMC_YPLTCYK,
                    OaFlowConstant.KSMC_YLQXSPCYK_1,
                    OaFlowConstant.KSMC_YLQXSPCYK_2,
                    OaFlowConstant.KSMC_SPHZPPSCYK
            );

            List<String> jxzbmcMlList = CollectionUtil.newArrayList(
                    OaFlowConstant.JXSB_LWF,
                    OaFlowConstant.JXSB_CLF,
                    OaFlowConstant.JXSB_PXF,
                    OaFlowConstant.JXSB_YXF,
                    OaFlowConstant.JXSB_KTF
            );

            List<String> lxMlList = CollectionUtil.newArrayList(
                    "产出指标",
                    "效益指标",
                    "满意度指标"
            );

            List<String> lxmcDataMl1List = CollectionUtil.newArrayList(
                    "数量指标",
                    "质量指标",
                    "时效指标",
                    "成本指标"
            );

            List<String> lxmcDataMl2List = CollectionUtil.newArrayList(
                    "社会效益指标",
                    "可持续影响指标"
            );

            List<String> lxmcDataMl3List = CollectionUtil.newArrayList(
                    "服务对象满意度指标"
            );

            Map lxmcDataMap = new HashMap();
            lxmcDataMap.put("产出指标", lxmcDataMl1List);
            lxmcDataMap.put("效益指标", lxmcDataMl2List);
            lxmcDataMap.put("满意度指标", lxmcDataMl3List);

            List<Map> resultMap = new ArrayList<>(deptList.size());

            List<NkYssbhjjxzb> zbOrgDataList = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
                    .eq(NkYssbhjjxzb::getFjhid, yssbhjjxzb.getFjhid())
                    .eq(NkYssbhjjxzb::getFlx, OaFlowConstant.YSSBLC_CWSH_ES));


            int total = 0;
            int jxzbmcSize = 0;
            int lxmcSize = 0;
            int slzbSize = 0;

            int index = -1;
            int dataIndex = 0;

            for (String ksmc : deptList){
                Map ksmcMap = new HashMap();
                List<Map> jxzbmcList = new ArrayList<>();

                List<NkYssbhjjxzb> ksZbDataList = zbOrgDataList.stream()
                        .filter(f ->
                                f.getFks().equals(ksmc)
                        )
                        .collect(Collectors.toList());

                total = 0;
                for (String jxzbmc : jxzbmcMlList){
                    Map jxzbmcMap = new HashMap();
                    List<Map> lxList = new ArrayList<>();

                    jxzbmcSize = 0;
                    index = -1;

                    dataIndex = 0;
                    for (String lxmc : lxMlList){
                        Map lxmcMap = new HashMap();
                        List<Map> lxmcDataList = new ArrayList<>();

                        List<String> slzbList = (List<String>) lxmcDataMap.get(lxmc);

                        List<NkYssbhjjxzb> zlzbDataList = ksZbDataList.stream()
                                .filter(f ->
                                        f.getFjxsblx().equals(jxzbmc) && f.getFyjzblx().equals(lxmc)
                                )
                                .collect(Collectors.toList());

                        lxmcSize = 0;
                        slzbSize = 0;

                        for (String slzb : slzbList){
                            Map slzbMap = new HashMap();
                            List<Map> zbDataList = new ArrayList<>();

                            List<NkYssbhjjxzb> keyValueList = zlzbDataList.stream()
                                    .filter(f ->
                                            f.getFejzblx().equals(slzb)
                                    )
                                    .collect(Collectors.toList());

                            for (NkYssbhjjxzb data : keyValueList){
                                Map slzbDataMap = new HashMap();
                                String key = "";
                                String value = "";

                                key = Optional.ofNullable(data.getFsjzb()).orElse("");
                                value = Optional.ofNullable(data.getFzbz()).orElse("");
                                slzbDataMap.put("id",data.getId());
                                slzbDataMap.put("key", key);
                                slzbDataMap.put("value", value);
                                zbDataList.add(slzbDataMap);
                            }

                            slzbMap.put("slzb", slzb);
                            slzbMap.put("zbDataList", zbDataList);
                            slzbSize = zbDataList.size();
                            slzbMap.put("size", slzbSize);

                            lxmcSize += slzbSize;
                            lxmcDataList.add(slzbMap);
                        }

                        if (index == -1 && lxmcSize > 0){
                            index = dataIndex;
                        }
                        dataIndex++;
                        lxmcMap.put("lxmc", lxmc);
                        lxmcMap.put("lxmcDataList", lxmcDataList);
                        lxmcMap.put("size", lxmcSize);

                        jxzbmcSize += lxmcSize;
                        lxList.add(lxmcMap);
                    }

                    jxzbmcMap.put("fjssblx", jxzbmc);
                    jxzbmcMap.put("lxList", lxList);
                    jxzbmcMap.put("size", jxzbmcSize);
                    jxzbmcMap.put("index", index);
                    total += jxzbmcSize;
                    jxzbmcList.add(jxzbmcMap);
                }

                ksmcMap.put("ksmc", ksmc);
                ksmcMap.put("jxzbmcList", jxzbmcList);
                ksmcMap.put("size", total);

                resultMap.add(ksmcMap);
            }

            return resultMap;
        }
        return null;
    }

    /**
     * 编辑 二上/绩效申报 没有id的时候
     * @param nkYssbhjjxzb
     * @return
     */
    public List editEsjxhjs(NkYssbhjjxzb nkYssbhjjxzb){
        if (StringUtils.isNotBlank(nkYssbhjjxzb.getFjhid())) {

            List<String> deptList = CollectionUtil.newArrayList(
                    OaFlowConstant.KSMC_BGS,
                    OaFlowConstant.KSMC_RJK,
                    OaFlowConstant.KSMC_ZLGLYKYK,
                    OaFlowConstant.KSMC_YPZCSPCYK,
                    OaFlowConstant.KSMC_YPSCCYK,
                    OaFlowConstant.KSMC_YPLTCYK,
                    OaFlowConstant.KSMC_YLQXSPCYK_1,
                    OaFlowConstant.KSMC_YLQXSPCYK_2,
                    OaFlowConstant.KSMC_SPHZPPSCYK
            );

            List<String> jxzbmcMlList = CollectionUtil.newArrayList(
                    OaFlowConstant.JXSB_LWF,
                    OaFlowConstant.JXSB_CLF,
                    OaFlowConstant.JXSB_PXF,
                    OaFlowConstant.JXSB_YXF,
                    OaFlowConstant.JXSB_KTF
            );

            List<String> lxMlList = CollectionUtil.newArrayList(
                    "产出指标",
                    "效益指标",
                    "满意度指标"
            );

            List<String> lxmcDataMl1List = CollectionUtil.newArrayList(
                    "数量指标",
                    "质量指标",
                    "时效指标",
                    "成本指标"
            );

            List<String> lxmcDataMl2List = CollectionUtil.newArrayList(
                    "社会效益指标",
                    "可持续影响指标"
            );

            List<String> lxmcDataMl3List = CollectionUtil.newArrayList(
                    "服务对象满意度指标"
            );

            Map lxmcDataMap = new HashMap();
            lxmcDataMap.put("产出指标", lxmcDataMl1List);
            lxmcDataMap.put("效益指标", lxmcDataMl2List);
            lxmcDataMap.put("满意度指标", lxmcDataMl3List);

            List<Map> resultMap = new ArrayList<>(deptList.size());

            List<NkYssbhjjxzb> zbOrgDataList = nkYssbhjjxzbService.list(new LambdaQueryWrapper<NkYssbhjjxzb>()
                    .eq(NkYssbhjjxzb::getFjhid, nkYssbhjjxzb.getFjhid())
                    .eq(NkYssbhjjxzb::getFlx, OaFlowConstant.YSSBLC_CWSH_ES));


            int total = 0;
            int jxzbmcSize = 0;
            int lxmcSize = 0;
            int slzbSize = 0;

            int index = -1;
            int dataIndex = 0;

            for (String ksmc : deptList){
                Map ksmcMap = new HashMap();
                List<Map> jxzbmcList = new ArrayList<>();

                List<NkYssbhjjxzb> ksZbDataList = zbOrgDataList.stream()
                        .filter(f ->
                                f.getFks().equals(ksmc)
                        )
                        .collect(Collectors.toList());

                total = 0;
                for (String jxzbmc : jxzbmcMlList){
                    Map jxzbmcMap = new HashMap();
                    List<Map> lxList = new ArrayList<>();

                    jxzbmcSize = 0;
                    index = -1;

                    dataIndex = 0;
                    for (String lxmc : lxMlList){
                        Map lxmcMap = new HashMap();
                        List<Map> lxmcDataList = new ArrayList<>();

                        List<String> slzbList = (List<String>) lxmcDataMap.get(lxmc);

                        List<NkYssbhjjxzb> zlzbDataList = ksZbDataList.stream()
                                .filter(f ->
                                        f.getFjxsblx().equals(jxzbmc) && f.getFyjzblx().equals(lxmc)
                                )
                                .collect(Collectors.toList());

                        lxmcSize = 0;
                        slzbSize = 0;

                        for (String slzb : slzbList){
                            Map slzbMap = new HashMap();
                            List<Map> zbDataList = new ArrayList<>();

                            List<NkYssbhjjxzb> keyValueList = zlzbDataList.stream()
                                    .filter(f ->
                                            f.getFejzblx().equals(slzb)
                                    )
                                    .collect(Collectors.toList());

                            for (NkYssbhjjxzb data : keyValueList){
                                Map slzbDataMap = new HashMap();
                                String key = "";
                                String value = "";

                                key = Optional.ofNullable(data.getFsjzb()).orElse("");
                                value = Optional.ofNullable(data.getFzbz()).orElse("");
                                slzbDataMap.put("id",data.getId());
                                slzbDataMap.put("key", key);
                                slzbDataMap.put("value", value);
                                zbDataList.add(slzbDataMap);
                            }

                            slzbMap.put("slzb", slzb);
                            slzbMap.put("zbDataList", zbDataList);
                            slzbSize = zbDataList.size();
                            slzbMap.put("size", slzbSize);

                            lxmcSize += slzbSize;
                            lxmcDataList.add(slzbMap);
                        }

                        if (index == -1 && lxmcSize > 0){
                            index = dataIndex;
                        }
                        dataIndex++;
                        lxmcMap.put("lxmc", lxmc);
                        lxmcMap.put("lxmcDataList", lxmcDataList);
                        lxmcMap.put("size", lxmcSize);

                        jxzbmcSize += lxmcSize;
                        lxList.add(lxmcMap);
                    }

                    jxzbmcMap.put("fjssblx", jxzbmc);
                    jxzbmcMap.put("lxList", lxList);
                    jxzbmcMap.put("size", jxzbmcSize);
                    jxzbmcMap.put("index", index);
                    total += jxzbmcSize;
                    jxzbmcList.add(jxzbmcMap);
                }

                ksmcMap.put("ksmc", ksmc);
                ksmcMap.put("jxzbmcList", jxzbmcList);
                ksmcMap.put("size", total);

                resultMap.add(ksmcMap);
            }

            return resultMap;
        }
        return null;
    }

    /**
     * 编辑 一上/课题
     */
    public List editYskt(NkYssbhjKt nkYssbhjKt) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjKt.getId())) {
            NkYssbhjKt yssbhjKt = nkYssbhjKtService.getById(nkYssbhjKt.getId());
            //如果不为空，在继续判断
            if (yssbhjKt != null) {
                //如果不为空，先将字段更新进表内，在查询然后计算
                nkYssbhjKtService.updateById(nkYssbhjKt);
            }


            //办公室
            Map bgshj = new HashMap<>();
            //人教科
            Map rjkhj = new HashMap<>();
            //质量管理与科研科
            Map zlglykykhj = new HashMap<>();

            HashMap ypzcspcykhj = new HashMap();
            //药品生产查验科
            Map ypsccykhj = new HashMap<>();
            //药品流通查验科
            Map ypltcykhj = new HashMap<>();
            //医疗器械审评查验1科
            Map ylqxspcykykhj = new HashMap<>();
            //医疗器械审评查验2科
            Map ylqxspcykekhj = new HashMap<>();
            //食品化妆品评审查验科
            Map sphzpspcykhj = new HashMap<>();

            //通过计划id，可以直接拿到预算表本计划的汇总
            List<NkYssbhjKt> nkYssbhjKts = nkYssbhjKtService.list(new LambdaQueryWrapper<NkYssbhjKt>()
                    .eq(NkYssbhjKt::getFyssbjhid, yssbhjKt.getFyssbjhid())
                    .eq(NkYssbhjKt::getFlx, OaFlowConstant.YSSBLC_CWSH_YS));

            //各个部门的数据集合
            //办公室
            BigDecimal bgsclf = new BigDecimal(0);

            //人教科
            BigDecimal rjkclf = new BigDecimal(0);

            //质量管理与科研科
            BigDecimal zlglykykclf = new BigDecimal(0);

            //药品注册审评查验科
            BigDecimal ypzcspcykclf = new BigDecimal(0);


            //药品生产查验科
            BigDecimal ypsccykclf = new BigDecimal(0);

            //药品流通查验科
            BigDecimal ypltcykclf = new BigDecimal(0);

            //医疗器械审评查验1科
            BigDecimal ylqxspcykykclf = new BigDecimal(0);

            //医疗器械审评查验2科
            BigDecimal ylqxspcykekclf = new BigDecimal(0);

            //食品化妆品评审查验科
            BigDecimal sphzpspcykclf = new BigDecimal(0);


            for (NkYssbhjKt nkYssbhjKtss : nkYssbhjKts) {
                BigDecimal fktjf = new BigDecimal(Optional.ofNullable(nkYssbhjKtss.getFktjf()).orElse("0"));
                switch (nkYssbhjKtss.getFktfzks()) {
                    case OaFlowConstant.KSMC_BGS:
                        bgsclf = bgsclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_RJK:
                        rjkclf = rjkclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_ZLGLYKYK:
                        zlglykykclf = zlglykykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YPZCSPCYK:
                        ypzcspcykclf = ypzcspcykclf.add(fktjf);
                        break;

                    case OaFlowConstant.KSMC_YPSCCYK:
                        ypsccykclf = ypsccykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YPLTCYK:
                        ypltcykclf = ypltcykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_1:
                        ylqxspcykykclf = ylqxspcykykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_2:
                        ylqxspcykekclf = ylqxspcykekclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_SPHZPPSCYK:
                        sphzpspcykclf = sphzpspcykclf.add(fktjf);
                        break;
                    default:
                        // 处理其他情况或无需处理
                        break;
                }
            }
            bgshj.put("name", "办公室");
            bgshj.put("ktjf", bgsclf);

            //人教科
            rjkhj.put("name", "人教科");
            rjkhj.put("ktjf", rjkclf);


            //质量管理与科研科
            zlglykykhj.put("name", "质量管理与科研科");
            zlglykykhj.put("ktjf", zlglykykclf);

            //药品注册审评查验科合计
            ypzcspcykhj.put("name", "药品注册审评查验科");
            ypzcspcykhj.put("ktjf", ypzcspcykclf);


            //药品生产查验科
            ypsccykhj.put("name", "药品生产查验科");
            ypsccykhj.put("ktjf", ypsccykclf);

            //药品流通查验科
            ypltcykhj.put("name", "药品流通查验科");
            ypltcykhj.put("ktjf", ypltcykclf);

            //医疗器械审评查验1科
            ylqxspcykykhj.put("name", "医疗器械审评查验1科");
            ylqxspcykykhj.put("ktjf", ylqxspcykykclf);

            //医疗器械审评查验2科
            ylqxspcykekhj.put("name", "医疗器械审评查验2科");
            ylqxspcykekhj.put("ktjf", ylqxspcykekclf);

            //食品化妆品评审查验科
            sphzpspcykhj.put("name", "食品化妆品评审查验科");
            sphzpspcykhj.put("ktjf", sphzpspcykclf);


            //总计
            HashMap zjmap = new HashMap();
            zjmap.put("name", "总计");
            zjmap.put("ktjf", bgsclf.add(rjkclf).add(zlglykykclf).add(ypzcspcykclf)
                    .add(ypsccykclf).add(ypltcykclf).add(ylqxspcykykclf).add(ylqxspcykekclf).add(sphzpspcykclf));


            allList.add(bgshj);
            allList.add(rjkhj);
            allList.add(zlglykykhj);

            allList.add(ypzcspcykhj);
            allList.add(ypsccykhj);
            allList.add(ypltcykhj);
            allList.add(ylqxspcykykhj);
            allList.add(ylqxspcykekhj);
            allList.add(sphzpspcykhj);
            allList.add(zjmap);
            return allList;

        }
        return allList;
    }

    /**
     * 第一次进入没有编辑的id返回-课题
     *
     * @param nkYssbhjKt
     * @return
     */
    public List editYskts(NkYssbhjKt nkYssbhjKt) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjKt.getFyssbjhid())) {

            //办公室
            Map bgshj = new HashMap<>();
            //人教科
            Map rjkhj = new HashMap<>();
            //质量管理与科研科
            Map zlglykykhj = new HashMap<>();

            HashMap ypzcspcykhj = new HashMap();
            //药品生产查验科
            Map ypsccykhj = new HashMap<>();
            //药品流通查验科
            Map ypltcykhj = new HashMap<>();
            //医疗器械审评查验1科
            Map ylqxspcykykhj = new HashMap<>();
            //医疗器械审评查验2科
            Map ylqxspcykekhj = new HashMap<>();
            //食品化妆品评审查验科
            Map sphzpspcykhj = new HashMap<>();

            //通过计划id，可以直接拿到预算表本计划的汇总
            List<NkYssbhjKt> nkYssbhjKts = nkYssbhjKtService.list(new LambdaQueryWrapper<NkYssbhjKt>()
                    .eq(NkYssbhjKt::getFyssbjhid, nkYssbhjKt.getFyssbjhid())
                    .eq(NkYssbhjKt::getFlx, OaFlowConstant.YSSBLC_CWSH_YS));

            //各个部门的数据集合
            //办公室
            BigDecimal bgsclf = new BigDecimal(0);

            //人教科
            BigDecimal rjkclf = new BigDecimal(0);

            //质量管理与科研科
            BigDecimal zlglykykclf = new BigDecimal(0);

            //药品注册审评查验科
            BigDecimal ypzcspcykclf = new BigDecimal(0);


            //药品生产查验科
            BigDecimal ypsccykclf = new BigDecimal(0);

            //药品流通查验科
            BigDecimal ypltcykclf = new BigDecimal(0);

            //医疗器械审评查验1科
            BigDecimal ylqxspcykykclf = new BigDecimal(0);

            //医疗器械审评查验2科
            BigDecimal ylqxspcykekclf = new BigDecimal(0);

            //食品化妆品评审查验科
            BigDecimal sphzpspcykclf = new BigDecimal(0);


            for (NkYssbhjKt nkYssbhjKtss : nkYssbhjKts) {
                BigDecimal fktjf = new BigDecimal(Optional.ofNullable(nkYssbhjKtss.getFktjf()).orElse("0"));


                switch (nkYssbhjKtss.getFktfzks()) {
                    case OaFlowConstant.KSMC_BGS:
                        bgsclf = bgsclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_RJK:
                        rjkclf = rjkclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_ZLGLYKYK:
                        zlglykykclf = zlglykykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YPZCSPCYK:
                        ypzcspcykclf = ypzcspcykclf.add(fktjf);
                        break;

                    case OaFlowConstant.KSMC_YPSCCYK:
                        ypsccykclf = ypsccykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YPLTCYK:
                        ypltcykclf = ypltcykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_1:
                        ylqxspcykykclf = ylqxspcykykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_2:
                        ylqxspcykekclf = ylqxspcykekclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_SPHZPPSCYK:
                        sphzpspcykclf = sphzpspcykclf.add(fktjf);
                        break;
                    default:
                        // 处理其他情况或无需处理
                        break;
                }
            }
            bgshj.put("name", "办公室");
            bgshj.put("ktjf", bgsclf);

            //人教科
            rjkhj.put("name", "人教科");
            rjkhj.put("ktjf", rjkclf);


            //质量管理与科研科
            zlglykykhj.put("name", "质量管理与科研科");
            zlglykykhj.put("ktjf", zlglykykclf);

            //药品注册审评查验科合计
            ypzcspcykhj.put("name", "药品注册审评查验科");
            ypzcspcykhj.put("ktjf", ypzcspcykclf);


            //药品生产查验科
            ypsccykhj.put("name", "药品生产查验科");
            ypsccykhj.put("ktjf", ypsccykclf);

            //药品流通查验科
            ypltcykhj.put("name", "药品流通查验科");
            ypltcykhj.put("ktjf", ypltcykclf);

            //医疗器械审评查验1科
            ylqxspcykykhj.put("name", "医疗器械审评查验1科");
            ylqxspcykykhj.put("ktjf", ylqxspcykykclf);

            //医疗器械审评查验2科
            ylqxspcykekhj.put("name", "医疗器械审评查验2科");
            ylqxspcykekhj.put("ktjf", ylqxspcykekclf);

            //食品化妆品评审查验科
            sphzpspcykhj.put("name", "食品化妆品评审查验科");
            sphzpspcykhj.put("ktjf", sphzpspcykclf);


            //总计
            HashMap zjmap = new HashMap();
            zjmap.put("name", "总计");
            zjmap.put("ktjf", bgsclf.add(rjkclf).add(zlglykykclf).add(ypzcspcykclf)
                    .add(ypsccykclf).add(ypltcykclf).add(ylqxspcykykclf).add(ylqxspcykekclf).add(sphzpspcykclf));


            allList.add(bgshj);
            allList.add(rjkhj);
            allList.add(zlglykykhj);

            allList.add(ypzcspcykhj);
            allList.add(ypsccykhj);
            allList.add(ypltcykhj);
            allList.add(ylqxspcykykhj);
            allList.add(ylqxspcykekhj);
            allList.add(sphzpspcykhj);
            allList.add(zjmap);
            return allList;

        }
        return allList;
    }


    /**
     * 编辑 二上/课题
     */
    public List editEskt(NkYssbhjKt nkYssbhjKt) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjKt.getId())) {
            NkYssbhjKt yssbhjKt = nkYssbhjKtService.getById(nkYssbhjKt.getId());
            //如果不为空，在继续判断
            if (yssbhjKt != null) {
                //如果不为空，先将字段更新进表内，在查询然后计算
                nkYssbhjKtService.updateById(nkYssbhjKt);
            }


            //办公室
            Map bgshj = new HashMap<>();
            //人教科
            Map rjkhj = new HashMap<>();
            //质量管理与科研科
            Map zlglykykhj = new HashMap<>();

            HashMap ypzcspcykhj = new HashMap();
            //药品生产查验科
            Map ypsccykhj = new HashMap<>();
            //药品流通查验科
            Map ypltcykhj = new HashMap<>();
            //医疗器械审评查验1科
            Map ylqxspcykykhj = new HashMap<>();
            //医疗器械审评查验2科
            Map ylqxspcykekhj = new HashMap<>();
            //食品化妆品评审查验科
            Map sphzpspcykhj = new HashMap<>();

            //通过计划id，可以直接拿到预算表本计划的汇总
            List<NkYssbhjKt> nkYssbhjKts = nkYssbhjKtService.list(new LambdaQueryWrapper<NkYssbhjKt>()
                    .eq(NkYssbhjKt::getFyssbjhid, yssbhjKt.getFyssbjhid())
                    .eq(NkYssbhjKt::getFlx, OaFlowConstant.YSSBLC_CWSH_ES));

            //各个部门的数据集合
            //办公室
            BigDecimal bgsclf = new BigDecimal(0);

            //人教科
            BigDecimal rjkclf = new BigDecimal(0);

            //质量管理与科研科
            BigDecimal zlglykykclf = new BigDecimal(0);

            //药品注册审评查验科
            BigDecimal ypzcspcykclf = new BigDecimal(0);


            //药品生产查验科
            BigDecimal ypsccykclf = new BigDecimal(0);

            //药品流通查验科
            BigDecimal ypltcykclf = new BigDecimal(0);

            //医疗器械审评查验1科
            BigDecimal ylqxspcykykclf = new BigDecimal(0);

            //医疗器械审评查验2科
            BigDecimal ylqxspcykekclf = new BigDecimal(0);

            //食品化妆品评审查验科
            BigDecimal sphzpspcykclf = new BigDecimal(0);


            for (NkYssbhjKt nkYssbhjKtss : nkYssbhjKts) {
                BigDecimal fktjf = new BigDecimal(Optional.ofNullable(nkYssbhjKtss.getFktjf()).orElse("0"));


                switch (nkYssbhjKtss.getFktfzks()) {
                    case OaFlowConstant.KSMC_BGS:
                        bgsclf = bgsclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_RJK:
                        rjkclf = rjkclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_ZLGLYKYK:
                        zlglykykclf = zlglykykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YPZCSPCYK:
                        ypzcspcykclf = ypzcspcykclf.add(fktjf);
                        break;

                    case OaFlowConstant.KSMC_YPSCCYK:
                        ypsccykclf = ypsccykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YPLTCYK:
                        ypltcykclf = ypltcykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_1:
                        ylqxspcykykclf = ylqxspcykykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_2:
                        ylqxspcykekclf = ylqxspcykekclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_SPHZPPSCYK:
                        sphzpspcykclf = sphzpspcykclf.add(fktjf);
                        break;
                    default:
                        // 处理其他情况或无需处理
                        break;
                }
            }
            bgshj.put("name", "办公室");
            bgshj.put("ktjf", bgsclf);

            //人教科
            rjkhj.put("name", "人教科");
            rjkhj.put("ktjf", rjkclf);


            //质量管理与科研科
            zlglykykhj.put("name", "质量管理与科研科");
            zlglykykhj.put("ktjf", zlglykykclf);

            //药品注册审评查验科合计
            ypzcspcykhj.put("name", "药品注册审评查验科");
            ypzcspcykhj.put("ktjf", ypzcspcykclf);


            //药品生产查验科
            ypsccykhj.put("name", "药品生产查验科");
            ypsccykhj.put("ktjf", ypsccykclf);

            //药品流通查验科
            ypltcykhj.put("name", "药品流通查验科");
            ypltcykhj.put("ktjf", ypltcykclf);

            //医疗器械审评查验1科
            ylqxspcykykhj.put("name", "医疗器械审评查验1科");
            ylqxspcykykhj.put("ktjf", ylqxspcykykclf);

            //医疗器械审评查验2科
            ylqxspcykekhj.put("name", "医疗器械审评查验2科");
            ylqxspcykekhj.put("ktjf", ylqxspcykekclf);

            //食品化妆品评审查验科
            sphzpspcykhj.put("name", "食品化妆品评审查验科");
            sphzpspcykhj.put("ktjf", sphzpspcykclf);


            //总计
            HashMap zjmap = new HashMap();
            zjmap.put("name", "总计");
            zjmap.put("ktjf", bgsclf.add(rjkclf).add(zlglykykclf).add(ypzcspcykclf)
                    .add(ypsccykclf).add(ypltcykclf).add(ylqxspcykykclf).add(ylqxspcykekclf).add(sphzpspcykclf));


            allList.add(bgshj);
            allList.add(rjkhj);
            allList.add(zlglykykhj);

            allList.add(ypzcspcykhj);
            allList.add(ypsccykhj);
            allList.add(ypltcykhj);
            allList.add(ylqxspcykykhj);
            allList.add(ylqxspcykekhj);
            allList.add(sphzpspcykhj);
            allList.add(zjmap);
            return allList;

        }
        return allList;
    }


    /**
     * 第一次进入没有编辑的id返回-课题-二上
     *
     * @param nkYssbhjKt
     * @return
     */
    public List editEskts(NkYssbhjKt nkYssbhjKt) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjKt.getFyssbjhid())) {

            //办公室
            Map bgshj = new HashMap<>();
            //人教科
            Map rjkhj = new HashMap<>();
            //质量管理与科研科
            Map zlglykykhj = new HashMap<>();

            HashMap ypzcspcykhj = new HashMap();
            //药品生产查验科
            Map ypsccykhj = new HashMap<>();
            //药品流通查验科
            Map ypltcykhj = new HashMap<>();
            //医疗器械审评查验1科
            Map ylqxspcykykhj = new HashMap<>();
            //医疗器械审评查验2科
            Map ylqxspcykekhj = new HashMap<>();
            //食品化妆品评审查验科
            Map sphzpspcykhj = new HashMap<>();

            //通过计划id，可以直接拿到预算表本计划的汇总
            List<NkYssbhjKt> nkYssbhjKts = nkYssbhjKtService.list(new LambdaQueryWrapper<NkYssbhjKt>()
                    .eq(NkYssbhjKt::getFyssbjhid, nkYssbhjKt.getFyssbjhid())
                    .eq(NkYssbhjKt::getFlx, OaFlowConstant.YSSBLC_CWSH_ES));

            //各个部门的数据集合
            //办公室
            BigDecimal bgsclf = new BigDecimal(0);

            //人教科
            BigDecimal rjkclf = new BigDecimal(0);

            //质量管理与科研科
            BigDecimal zlglykykclf = new BigDecimal(0);

            //药品注册审评查验科
            BigDecimal ypzcspcykclf = new BigDecimal(0);


            //药品生产查验科
            BigDecimal ypsccykclf = new BigDecimal(0);

            //药品流通查验科
            BigDecimal ypltcykclf = new BigDecimal(0);

            //医疗器械审评查验1科
            BigDecimal ylqxspcykykclf = new BigDecimal(0);

            //医疗器械审评查验2科
            BigDecimal ylqxspcykekclf = new BigDecimal(0);

            //食品化妆品评审查验科
            BigDecimal sphzpspcykclf = new BigDecimal(0);


            for (NkYssbhjKt nkYssbhjKtss : nkYssbhjKts) {
                BigDecimal fktjf = new BigDecimal(Optional.ofNullable(nkYssbhjKtss.getFktjf()).orElse("0"));


                switch (nkYssbhjKtss.getFktfzks()) {
                    case OaFlowConstant.KSMC_BGS:
                        bgsclf = bgsclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_RJK:
                        rjkclf = rjkclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_ZLGLYKYK:
                        zlglykykclf = zlglykykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YPZCSPCYK:
                        ypzcspcykclf = ypzcspcykclf.add(fktjf);
                        break;

                    case OaFlowConstant.KSMC_YPSCCYK:
                        ypsccykclf = ypsccykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YPLTCYK:
                        ypltcykclf = ypltcykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_1:
                        ylqxspcykykclf = ylqxspcykykclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_2:
                        ylqxspcykekclf = ylqxspcykekclf.add(fktjf);
                        break;
                    case OaFlowConstant.KSMC_SPHZPPSCYK:
                        sphzpspcykclf = sphzpspcykclf.add(fktjf);
                        break;
                    default:
                        // 处理其他情况或无需处理
                        break;
                }
            }
            bgshj.put("name", "办公室");
            bgshj.put("ktjf", bgsclf);

            //人教科
            rjkhj.put("name", "人教科");
            rjkhj.put("ktjf", rjkclf);


            //质量管理与科研科
            zlglykykhj.put("name", "质量管理与科研科");
            zlglykykhj.put("ktjf", zlglykykclf);

            //药品注册审评查验科合计
            ypzcspcykhj.put("name", "药品注册审评查验科");
            ypzcspcykhj.put("ktjf", ypzcspcykclf);


            //药品生产查验科
            ypsccykhj.put("name", "药品生产查验科");
            ypsccykhj.put("ktjf", ypsccykclf);

            //药品流通查验科
            ypltcykhj.put("name", "药品流通查验科");
            ypltcykhj.put("ktjf", ypltcykclf);

            //医疗器械审评查验1科
            ylqxspcykykhj.put("name", "医疗器械审评查验1科");
            ylqxspcykykhj.put("ktjf", ylqxspcykykclf);

            //医疗器械审评查验2科
            ylqxspcykekhj.put("name", "医疗器械审评查验2科");
            ylqxspcykekhj.put("ktjf", ylqxspcykekclf);

            //食品化妆品评审查验科
            sphzpspcykhj.put("name", "食品化妆品评审查验科");
            sphzpspcykhj.put("ktjf", sphzpspcykclf);


            //总计
            HashMap zjmap = new HashMap();
            zjmap.put("name", "总计");
            zjmap.put("ktjf", bgsclf.add(rjkclf).add(zlglykykclf).add(ypzcspcykclf)
                    .add(ypsccykclf).add(ypltcykclf).add(ylqxspcykykclf).add(ylqxspcykekclf).add(sphzpspcykclf));


            allList.add(bgshj);
            allList.add(rjkhj);
            allList.add(zlglykykhj);

            allList.add(ypzcspcykhj);
            allList.add(ypsccykhj);
            allList.add(ypltcykhj);
            allList.add(ylqxspcykykhj);
            allList.add(ylqxspcykekhj);
            allList.add(sphzpspcykhj);
            allList.add(zjmap);
            return allList;

        }
        return allList;
    }


    /**
     * 编辑一上-印刷
     */
    public List editYsys(NkYssbhjys nkYssbhjys) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjys.getId())) {
            NkYssbhjys nkYssbhjys1 = nkYssbhjysService.getById(nkYssbhjys.getId());
            //如果不为空，在继续判断
            if (nkYssbhjys1 != null) {
                //如果不为空，先将字段更新进表内，在查询然后计算
                nkYssbhjysService.updateById(nkYssbhjys);
            }
            NkYssbhjys nkYssbhjys2 = nkYssbhjysService.getById(nkYssbhjys.getId());
            BigDecimal fyzhj = new BigDecimal(nkYssbhjys2.getFsbsl())
                    .multiply(new BigDecimal(nkYssbhjys2.getFmbqs()));

            nkYssbhjys2.setFyzhj(String.valueOf(fyzhj));
            nkYssbhjysService.updateById(nkYssbhjys2);

            Map bgshj = new HashMap<>();
            //人教科
            Map rjkhj = new HashMap<>();
            //质量管理与科研科
            Map zlglykykhj = new HashMap<>();

            HashMap ypzcspcykhj = new HashMap();
            //药品生产查验科
            Map ypsccykhj = new HashMap<>();
            //药品流通查验科
            Map ypltcykhj = new HashMap<>();
            //医疗器械审评查验1科
            Map ylqxspcykykhj = new HashMap<>();
            //医疗器械审评查验2科
            Map ylqxspcykekhj = new HashMap<>();
            //食品化妆品评审查验科
            Map sphzpspcykhj = new HashMap<>();

            //通过计划id，可以直接拿到预算表本计划的汇总
            List<NkYssbhjys> nkYssbhjys3 = nkYssbhjysService.list(new LambdaQueryWrapper<NkYssbhjys>()
                    .eq(NkYssbhjys::getFyssbjhid, nkYssbhjys2.getFyssbjhid())
                    .eq(NkYssbhjys::getFlx, OaFlowConstant.YSSBLC_CWSH_YS));

            //各个部门的数据集合
            //办公室
            BigDecimal bgsclf = new BigDecimal(0);

            //人教科
            BigDecimal rjkclf = new BigDecimal(0);

            //质量管理与科研科
            BigDecimal zlglykykclf = new BigDecimal(0);

            //药品注册审评查验科
            BigDecimal ypzcspcykclf = new BigDecimal(0);


            //药品生产查验科
            BigDecimal ypsccykclf = new BigDecimal(0);

            //药品流通查验科
            BigDecimal ypltcykclf = new BigDecimal(0);

            //医疗器械审评查验1科
            BigDecimal ylqxspcykykclf = new BigDecimal(0);

            //医疗器械审评查验2科
            BigDecimal ylqxspcykekclf = new BigDecimal(0);

            //食品化妆品评审查验科
            BigDecimal sphzpspcykclf = new BigDecimal(0);


            for (NkYssbhjys nkYssbhjys4 : nkYssbhjys3) {
                BigDecimal fysf = new BigDecimal(Optional.ofNullable(nkYssbhjys4.getFyzhj()).orElse("0"));


                switch (nkYssbhjys4.getFks()) {
                    case OaFlowConstant.KSMC_BGS:
                        bgsclf = bgsclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_RJK:
                        rjkclf = rjkclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_ZLGLYKYK:
                        zlglykykclf = zlglykykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPZCSPCYK:
                        ypzcspcykclf = ypzcspcykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPSCCYK:
                        ypsccykclf = ypsccykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPLTCYK:
                        ypltcykclf = ypltcykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_1:
                        ylqxspcykykclf = ylqxspcykykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_2:
                        ylqxspcykekclf = ylqxspcykekclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_SPHZPPSCYK:
                        sphzpspcykclf = sphzpspcykclf.add(fysf);
                        break;
                    default:
                        // 处理其他情况或无需处理
                        break;
                }
            }
            bgshj.put("name", "办公室");
            bgshj.put("ysf", bgsclf);

            //人教科
            rjkhj.put("name", "人教科");
            rjkhj.put("ysf", rjkclf);


            //质量管理与科研科
            zlglykykhj.put("name", "质量管理与科研科");
            zlglykykhj.put("ysf", zlglykykclf);

            //药品注册审评查验科合计
            ypzcspcykhj.put("name", "药品注册审评查验科");
            ypzcspcykhj.put("ysf", ypzcspcykclf);


            //药品生产查验科
            ypsccykhj.put("name", "药品生产查验科");
            ypsccykhj.put("ysf", ypsccykclf);

            //药品流通查验科
            ypltcykhj.put("name", "药品流通查验科");
            ypltcykhj.put("ysf", ypltcykclf);

            //医疗器械审评查验1科
            ylqxspcykykhj.put("name", "医疗器械审评查验1科");
            ylqxspcykykhj.put("ysf", ylqxspcykykclf);

            //医疗器械审评查验2科
            ylqxspcykekhj.put("name", "医疗器械审评查验2科");
            ylqxspcykekhj.put("ysf", ylqxspcykekclf);

            //食品化妆品评审查验科
            sphzpspcykhj.put("name", "食品化妆品评审查验科");
            sphzpspcykhj.put("ysf", sphzpspcykclf);


            //总计
            HashMap zjmap = new HashMap();
            zjmap.put("name", "总计");
            zjmap.put("ysf", bgsclf.add(rjkclf).add(zlglykykclf).add(ypzcspcykclf)
                    .add(ypsccykclf).add(ypltcykclf).add(ylqxspcykykclf).add(ylqxspcykekclf).add(sphzpspcykclf));


            allList.add(bgshj);
            allList.add(rjkhj);
            allList.add(zlglykykhj);

            allList.add(ypzcspcykhj);
            allList.add(ypsccykhj);
            allList.add(ypltcykhj);
            allList.add(ylqxspcykykhj);
            allList.add(ylqxspcykekhj);
            allList.add(sphzpspcykhj);
            allList.add(zjmap);
            return allList;


        }
        return allList;
    }

    /**
     * 第一次进入没有编辑的id返回 编辑一上-印刷
     */
    public List editYsyss(NkYssbhjys nkYssbhjys) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjys.getFyssbjhid())) {


            Map bgshj = new HashMap<>();
            //人教科
            Map rjkhj = new HashMap<>();
            //质量管理与科研科
            Map zlglykykhj = new HashMap<>();

            HashMap ypzcspcykhj = new HashMap();
            //药品生产查验科
            Map ypsccykhj = new HashMap<>();
            //药品流通查验科
            Map ypltcykhj = new HashMap<>();
            //医疗器械审评查验1科
            Map ylqxspcykykhj = new HashMap<>();
            //医疗器械审评查验2科
            Map ylqxspcykekhj = new HashMap<>();
            //食品化妆品评审查验科
            Map sphzpspcykhj = new HashMap<>();

            //通过计划id，可以直接拿到预算表本计划的汇总
            List<NkYssbhjys> nkYssbhjys3 = nkYssbhjysService.list(new LambdaQueryWrapper<NkYssbhjys>()
                    .eq(NkYssbhjys::getFyssbjhid, nkYssbhjys.getFyssbjhid())
                    .eq(NkYssbhjys::getFlx, OaFlowConstant.YSSBLC_CWSH_YS));

            //各个部门的数据集合
            //办公室
            BigDecimal bgsclf = new BigDecimal(0);

            //人教科
            BigDecimal rjkclf = new BigDecimal(0);

            //质量管理与科研科
            BigDecimal zlglykykclf = new BigDecimal(0);

            //药品注册审评查验科
            BigDecimal ypzcspcykclf = new BigDecimal(0);


            //药品生产查验科
            BigDecimal ypsccykclf = new BigDecimal(0);

            //药品流通查验科
            BigDecimal ypltcykclf = new BigDecimal(0);

            //医疗器械审评查验1科
            BigDecimal ylqxspcykykclf = new BigDecimal(0);

            //医疗器械审评查验2科
            BigDecimal ylqxspcykekclf = new BigDecimal(0);

            //食品化妆品评审查验科
            BigDecimal sphzpspcykclf = new BigDecimal(0);


            for (NkYssbhjys nkYssbhjys4 : nkYssbhjys3) {
                BigDecimal fysf = new BigDecimal(Optional.ofNullable(nkYssbhjys4.getFyzhj()).orElse("0"));


                switch (nkYssbhjys4.getFks()) {
                    case OaFlowConstant.KSMC_BGS:
                        bgsclf = bgsclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_RJK:
                        rjkclf = rjkclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_ZLGLYKYK:
                        zlglykykclf = zlglykykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPZCSPCYK:
                        ypzcspcykclf = ypzcspcykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPSCCYK:
                        ypsccykclf = ypsccykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPLTCYK:
                        ypltcykclf = ypltcykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_1:
                        ylqxspcykykclf = ylqxspcykykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_2:
                        ylqxspcykekclf = ylqxspcykekclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_SPHZPPSCYK:
                        sphzpspcykclf = sphzpspcykclf.add(fysf);
                        break;
                    default:
                        // 处理其他情况或无需处理
                        break;
                }
            }
            bgshj.put("name", "办公室");
            bgshj.put("ysf", bgsclf);

            //人教科
            rjkhj.put("name", "人教科");
            rjkhj.put("ysf", rjkclf);


            //质量管理与科研科
            zlglykykhj.put("name", "质量管理与科研科");
            zlglykykhj.put("ysf", zlglykykclf);

            //药品注册审评查验科合计
            ypzcspcykhj.put("name", "药品注册审评查验科");
            ypzcspcykhj.put("ysf", ypzcspcykclf);


            //药品生产查验科
            ypsccykhj.put("name", "药品生产查验科");
            ypsccykhj.put("ysf", ypsccykclf);

            //药品流通查验科
            ypltcykhj.put("name", "药品流通查验科");
            ypltcykhj.put("ysf", ypltcykclf);

            //医疗器械审评查验1科
            ylqxspcykykhj.put("name", "医疗器械审评查验1科");
            ylqxspcykykhj.put("ysf", ylqxspcykykclf);

            //医疗器械审评查验2科
            ylqxspcykekhj.put("name", "医疗器械审评查验2科");
            ylqxspcykekhj.put("ysf", ylqxspcykekclf);

            //食品化妆品评审查验科
            sphzpspcykhj.put("name", "食品化妆品评审查验科");
            sphzpspcykhj.put("ysf", sphzpspcykclf);


            //总计
            HashMap zjmap = new HashMap();
            zjmap.put("name", "总计");
            zjmap.put("ysf", bgsclf.add(rjkclf).add(zlglykykclf).add(ypzcspcykclf)
                    .add(ypsccykclf).add(ypltcykclf).add(ylqxspcykykclf).add(ylqxspcykekclf).add(sphzpspcykclf));


            allList.add(bgshj);
            allList.add(rjkhj);
            allList.add(zlglykykhj);

            allList.add(ypzcspcykhj);
            allList.add(ypsccykhj);
            allList.add(ypltcykhj);
            allList.add(ylqxspcykykhj);
            allList.add(ylqxspcykekhj);
            allList.add(sphzpspcykhj);
            allList.add(zjmap);
            return allList;


        }
        return allList;
    }

    /**
     * 编辑二上-印刷
     */
    public List editYEsys(NkYssbhjys nkYssbhjys) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjys.getId())) {
            NkYssbhjys nkYssbhjys1 = nkYssbhjysService.getById(nkYssbhjys.getId());
            //如果不为空，在继续判断
            if (nkYssbhjys1 != null) {
                //如果不为空，先将字段更新进表内，在查询然后计算
                nkYssbhjysService.updateById(nkYssbhjys);
            }
            NkYssbhjys nkYssbhjys2 = nkYssbhjysService.getById(nkYssbhjys.getId());
            BigDecimal fyzhj = new BigDecimal(nkYssbhjys2.getFsbsl())
                    .multiply(new BigDecimal(nkYssbhjys2.getFmbqs()));

            nkYssbhjys2.setFyzhj(String.valueOf(fyzhj));
            nkYssbhjysService.updateById(nkYssbhjys2);

            Map bgshj = new HashMap<>();
            //人教科
            Map rjkhj = new HashMap<>();
            //质量管理与科研科
            Map zlglykykhj = new HashMap<>();

            HashMap ypzcspcykhj = new HashMap();
            //药品生产查验科
            Map ypsccykhj = new HashMap<>();
            //药品流通查验科
            Map ypltcykhj = new HashMap<>();
            //医疗器械审评查验1科
            Map ylqxspcykykhj = new HashMap<>();
            //医疗器械审评查验2科
            Map ylqxspcykekhj = new HashMap<>();
            //食品化妆品评审查验科
            Map sphzpspcykhj = new HashMap<>();

            //通过计划id，可以直接拿到预算表本计划的汇总
            List<NkYssbhjys> nkYssbhjys3 = nkYssbhjysService.list(new LambdaQueryWrapper<NkYssbhjys>()
                    .eq(NkYssbhjys::getFyssbjhid, nkYssbhjys2.getFyssbjhid())
                    .eq(NkYssbhjys::getFlx, OaFlowConstant.YSSBLC_CWSH_ES));

            //各个部门的数据集合
            //办公室
            BigDecimal bgsclf = new BigDecimal(0);

            //人教科
            BigDecimal rjkclf = new BigDecimal(0);

            //质量管理与科研科
            BigDecimal zlglykykclf = new BigDecimal(0);

            //药品注册审评查验科
            BigDecimal ypzcspcykclf = new BigDecimal(0);


            //药品生产查验科
            BigDecimal ypsccykclf = new BigDecimal(0);

            //药品流通查验科
            BigDecimal ypltcykclf = new BigDecimal(0);

            //医疗器械审评查验1科
            BigDecimal ylqxspcykykclf = new BigDecimal(0);

            //医疗器械审评查验2科
            BigDecimal ylqxspcykekclf = new BigDecimal(0);

            //食品化妆品评审查验科
            BigDecimal sphzpspcykclf = new BigDecimal(0);


            for (NkYssbhjys nkYssbhjys4 : nkYssbhjys3) {
                BigDecimal fysf = new BigDecimal(Optional.ofNullable(nkYssbhjys4.getFyzhj()).orElse("0"));


                switch (nkYssbhjys4.getFks()) {
                    case OaFlowConstant.KSMC_BGS:
                        bgsclf = bgsclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_RJK:
                        rjkclf = rjkclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_ZLGLYKYK:
                        zlglykykclf = zlglykykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPZCSPCYK:
                        ypzcspcykclf = ypzcspcykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPSCCYK:
                        ypsccykclf = ypsccykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPLTCYK:
                        ypltcykclf = ypltcykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_1:
                        ylqxspcykykclf = ylqxspcykykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_2:
                        ylqxspcykekclf = ylqxspcykekclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_SPHZPPSCYK:
                        sphzpspcykclf = sphzpspcykclf.add(fysf);
                        break;
                    default:
                        // 处理其他情况或无需处理
                        break;
                }
            }
            bgshj.put("name", "办公室");
            bgshj.put("ysf", bgsclf);

            //人教科
            rjkhj.put("name", "人教科");
            rjkhj.put("ysf", rjkclf);


            //质量管理与科研科
            zlglykykhj.put("name", "质量管理与科研科");
            zlglykykhj.put("ysf", zlglykykclf);

            //药品注册审评查验科合计
            ypzcspcykhj.put("name", "药品注册审评查验科");
            ypzcspcykhj.put("ysf", ypzcspcykclf);


            //药品生产查验科
            ypsccykhj.put("name", "药品生产查验科");
            ypsccykhj.put("ysf", ypsccykclf);

            //药品流通查验科
            ypltcykhj.put("name", "药品流通查验科");
            ypltcykhj.put("ysf", ypltcykclf);

            //医疗器械审评查验1科
            ylqxspcykykhj.put("name", "医疗器械审评查验1科");
            ylqxspcykykhj.put("ysf", ylqxspcykykclf);

            //医疗器械审评查验2科
            ylqxspcykekhj.put("name", "医疗器械审评查验2科");
            ylqxspcykekhj.put("ysf", ylqxspcykekclf);

            //食品化妆品评审查验科
            sphzpspcykhj.put("name", "食品化妆品评审查验科");
            sphzpspcykhj.put("ysf", sphzpspcykclf);


            //总计
            HashMap zjmap = new HashMap();
            zjmap.put("name", "总计");
            zjmap.put("ysf", bgsclf.add(rjkclf).add(zlglykykclf).add(ypzcspcykclf)
                    .add(ypsccykclf).add(ypltcykclf).add(ylqxspcykykclf).add(ylqxspcykekclf).add(sphzpspcykclf));


            allList.add(bgshj);
            allList.add(rjkhj);
            allList.add(zlglykykhj);

            allList.add(ypzcspcykhj);
            allList.add(ypsccykhj);
            allList.add(ypltcykhj);
            allList.add(ylqxspcykykhj);
            allList.add(ylqxspcykekhj);
            allList.add(sphzpspcykhj);
            allList.add(zjmap);
            return allList;


        }
        return allList;
    }


    /**
     * 第一次进入没有编辑的id返回 编辑二上-印刷
     */
    public List editEsyss(NkYssbhjys nkYssbhjys) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjys.getFyssbjhid())) {


            Map bgshj = new HashMap<>();
            //人教科
            Map rjkhj = new HashMap<>();
            //质量管理与科研科
            Map zlglykykhj = new HashMap<>();

            HashMap ypzcspcykhj = new HashMap();
            //药品生产查验科
            Map ypsccykhj = new HashMap<>();
            //药品流通查验科
            Map ypltcykhj = new HashMap<>();
            //医疗器械审评查验1科
            Map ylqxspcykykhj = new HashMap<>();
            //医疗器械审评查验2科
            Map ylqxspcykekhj = new HashMap<>();
            //食品化妆品评审查验科
            Map sphzpspcykhj = new HashMap<>();

            //通过计划id，可以直接拿到预算表本计划的汇总
            List<NkYssbhjys> nkYssbhjys3 = nkYssbhjysService.list(new LambdaQueryWrapper<NkYssbhjys>()
                    .eq(NkYssbhjys::getFyssbjhid, nkYssbhjys.getFyssbjhid())
                    .eq(NkYssbhjys::getFlx, OaFlowConstant.YSSBLC_CWSH_ES));

            //各个部门的数据集合
            //办公室
            BigDecimal bgsclf = new BigDecimal(0);

            //人教科
            BigDecimal rjkclf = new BigDecimal(0);

            //质量管理与科研科
            BigDecimal zlglykykclf = new BigDecimal(0);

            //药品注册审评查验科
            BigDecimal ypzcspcykclf = new BigDecimal(0);


            //药品生产查验科
            BigDecimal ypsccykclf = new BigDecimal(0);

            //药品流通查验科
            BigDecimal ypltcykclf = new BigDecimal(0);

            //医疗器械审评查验1科
            BigDecimal ylqxspcykykclf = new BigDecimal(0);

            //医疗器械审评查验2科
            BigDecimal ylqxspcykekclf = new BigDecimal(0);

            //食品化妆品评审查验科
            BigDecimal sphzpspcykclf = new BigDecimal(0);


            for (NkYssbhjys nkYssbhjys4 : nkYssbhjys3) {
                BigDecimal fysf = new BigDecimal(Optional.ofNullable(nkYssbhjys4.getFyzhj()).orElse("0"));


                switch (nkYssbhjys4.getFks()) {
                    case OaFlowConstant.KSMC_BGS:
                        bgsclf = bgsclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_RJK:
                        rjkclf = rjkclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_ZLGLYKYK:
                        zlglykykclf = zlglykykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPZCSPCYK:
                        ypzcspcykclf = ypzcspcykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPSCCYK:
                        ypsccykclf = ypsccykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YPLTCYK:
                        ypltcykclf = ypltcykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_1:
                        ylqxspcykykclf = ylqxspcykykclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_2:
                        ylqxspcykekclf = ylqxspcykekclf.add(fysf);
                        break;
                    case OaFlowConstant.KSMC_SPHZPPSCYK:
                        sphzpspcykclf = sphzpspcykclf.add(fysf);
                        break;
                    default:
                        // 处理其他情况或无需处理
                        break;
                }
            }
            bgshj.put("name", "办公室");
            bgshj.put("ysf", bgsclf);

            //人教科
            rjkhj.put("name", "人教科");
            rjkhj.put("ysf", rjkclf);


            //质量管理与科研科
            zlglykykhj.put("name", "质量管理与科研科");
            zlglykykhj.put("ysf", zlglykykclf);

            //药品注册审评查验科合计
            ypzcspcykhj.put("name", "药品注册审评查验科");
            ypzcspcykhj.put("ysf", ypzcspcykclf);


            //药品生产查验科
            ypsccykhj.put("name", "药品生产查验科");
            ypsccykhj.put("ysf", ypsccykclf);

            //药品流通查验科
            ypltcykhj.put("name", "药品流通查验科");
            ypltcykhj.put("ysf", ypltcykclf);

            //医疗器械审评查验1科
            ylqxspcykykhj.put("name", "医疗器械审评查验1科");
            ylqxspcykykhj.put("ysf", ylqxspcykykclf);

            //医疗器械审评查验2科
            ylqxspcykekhj.put("name", "医疗器械审评查验2科");
            ylqxspcykekhj.put("ysf", ylqxspcykekclf);

            //食品化妆品评审查验科
            sphzpspcykhj.put("name", "食品化妆品评审查验科");
            sphzpspcykhj.put("ysf", sphzpspcykclf);


            //总计
            HashMap zjmap = new HashMap();
            zjmap.put("name", "总计");
            zjmap.put("ysf", bgsclf.add(rjkclf).add(zlglykykclf).add(ypzcspcykclf)
                    .add(ypsccykclf).add(ypltcykclf).add(ylqxspcykykclf).add(ylqxspcykekclf).add(sphzpspcykclf));


            allList.add(bgshj);
            allList.add(rjkhj);
            allList.add(zlglykykhj);

            allList.add(ypzcspcykhj);
            allList.add(ypsccykhj);
            allList.add(ypltcykhj);
            allList.add(ylqxspcykykhj);
            allList.add(ylqxspcykekhj);
            allList.add(sphzpspcykhj);
            allList.add(zjmap);
            return allList;


        }
        return allList;
    }


    /**
     * 编辑一上-培训
     */
    public List editYspx(NkYssbhjPx nkYssbhjPx) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjPx.getId())) {
            NkYssbhjPx nkYssbhjPx1 = nkYssbhjpxService.getById(nkYssbhjPx.getId());
            //如果不为空，在继续判断
            if (nkYssbhjPx1 != null) {
                //如果不为空，先将字段更新进表内，在查询然后计算
                nkYssbhjpxService.updateById(nkYssbhjPx);
            }

        }
        NkYssbhjPx nkYssbhjys2 = nkYssbhjpxService.getById(nkYssbhjPx.getId());
        //培训费用
        BigDecimal fpxfy = new BigDecimal(0);
        //正高费用
        BigDecimal zgfy = new BigDecimal(0);
        //副高费用
        BigDecimal fgfy = new BigDecimal(0);


        //培训费用 以及 授课费计算
        if (StringUtils.isNotBlank(nkYssbhjys2.getFpxrs()) &&
                StringUtils.isNotBlank(nkYssbhjys2.getFpxts())) {

            fpxfy = new BigDecimal(nkYssbhjys2.getFpxrs())
                    .multiply(new BigDecimal(nkYssbhjys2.getFpxts())
                            .multiply(new BigDecimal("400")));

            nkYssbhjys2.setFpxfy(String.valueOf(fpxfy));
        }

        //正高费用
        if (StringUtils.isNotBlank(nkYssbhjys2.getFpxts()) &&
                StringUtils.isNotBlank(nkYssbhjys2.getFzgxs())) {
            zgfy = new BigDecimal(nkYssbhjys2.getFpxts())
                    .multiply(new BigDecimal(nkYssbhjys2.getFzgxs()))
                    .multiply(new BigDecimal("1000"));

            nkYssbhjys2.setFzgfy(String.valueOf(zgfy));
        }

        //副高费用
        if (StringUtils.isNotBlank(nkYssbhjys2.getFpxts()) &&
                StringUtils.isNotBlank(nkYssbhjys2.getFfgxs())) {
            fgfy = new BigDecimal(nkYssbhjys2.getFpxts())
                    .multiply(new BigDecimal(nkYssbhjys2.getFfgxs()))
                    .multiply(new BigDecimal("500"));

            nkYssbhjys2.setFfgfy(String.valueOf(fgfy));
        }

        //授课费用 = 正高费用 + 副高费用
        BigDecimal skfy = zgfy.add(fgfy);

        //培训授课小计 = 培训费用 + 正高 + 副高
        BigDecimal xj = fpxfy.add(zgfy).add(fgfy);

        nkYssbhjys2.setFskf(String.valueOf(skfy));
        nkYssbhjys2.setFpxskxj(String.valueOf(xj));
        nkYssbhjpxService.updateById(nkYssbhjys2);



        //办公室
        Map bgshj = new HashMap<>();
        //人教科
        Map rjkhj = new HashMap<>();
        //质量管理与科研科
        Map zlglykykhj = new HashMap<>();

        HashMap ypzcspcykhj = new HashMap();
        //药品生产查验科
        Map ypsccykhj = new HashMap<>();
        //药品流通查验科
        Map ypltcykhj = new HashMap<>();
        //医疗器械审评查验1科
        Map ylqxspcykykhj = new HashMap<>();
        //医疗器械审评查验2科
        Map ylqxspcykekhj = new HashMap<>();
        //食品化妆品评审查验科
        Map sphzpspcykhj = new HashMap<>();

        //通过计划id，可以直接拿到预算表本计划的汇总
        List<NkYssbhjPx> nkYssbhjPX = nkYssbhjpxService.list(new LambdaQueryWrapper<NkYssbhjPx>()
                .eq(NkYssbhjPx::getFyssbjhid, nkYssbhjys2.getFyssbjhid())
                .eq(NkYssbhjPx::getFlx, OaFlowConstant.YSSBLC_CWSH_YS));

        //各个部门的数据集合
        //办公室
        //培训人数 培训费 师资小计 合计
        BigDecimal bgspxrs = new BigDecimal(0);
        BigDecimal bgspxf = new BigDecimal(0);
        BigDecimal bgsszxj = new BigDecimal(0);
        BigDecimal bgspxhj = new BigDecimal(0);


        //人教科
        BigDecimal rjkpxrs = new BigDecimal(0);
        BigDecimal rjkpxf = new BigDecimal(0);
        BigDecimal rjkszxj = new BigDecimal(0);
        BigDecimal rjkszxjhj = new BigDecimal(0);

        //质量管理与科研科
        BigDecimal zlglykykpxrs = new BigDecimal(0);
        BigDecimal zlglykykpxf = new BigDecimal(0);
        BigDecimal zlglykykpxzxj = new BigDecimal(0);
        BigDecimal zlglykykpxzxjhj = new BigDecimal(0);


        //药品注册审评查验科
        BigDecimal ypzcspcykpxrs = new BigDecimal(0);
        BigDecimal ypzcspcykpxf = new BigDecimal(0);
        BigDecimal ypzcspcykpxzxj = new BigDecimal(0);
        BigDecimal ypzcspcykpxzxjhj = new BigDecimal(0);


        //药品生产查验科
        BigDecimal ypsccykpxrs = new BigDecimal(0);
        BigDecimal ypsccykpxf = new BigDecimal(0);
        BigDecimal ypsccykpxzxj = new BigDecimal(0);
        BigDecimal ypsccykpxzxjhj = new BigDecimal(0);

        //药品流通查验科
        BigDecimal ypltcykcpxrs = new BigDecimal(0);
        BigDecimal ypltcykcpxf = new BigDecimal(0);
        BigDecimal ypltcykcpxzxj = new BigDecimal(0);
        BigDecimal ypltcykcpxzxjhj = new BigDecimal(0);

        //医疗器械审评查验1科
        BigDecimal ylqxspcykykpxrs = new BigDecimal(0);
        BigDecimal ylqxspcykykpxf = new BigDecimal(0);
        BigDecimal ylqxspcykykpxzxj = new BigDecimal(0);
        BigDecimal ylqxspcykykpxzxjhj = new BigDecimal(0);

        //医疗器械审评查验2科
        BigDecimal ylqxspcykekpxrs = new BigDecimal(0);
        BigDecimal ylqxspcykekpxf = new BigDecimal(0);
        BigDecimal ylqxspcykekpxzxj = new BigDecimal(0);
        BigDecimal ylqxspcykekpxzxjhj = new BigDecimal(0);

        //食品化妆品评审查验科
        BigDecimal sphzpspcykpxrs = new BigDecimal(0);
        BigDecimal sphzpspcykpxf = new BigDecimal(0);
        BigDecimal sphzpspcykpxzxj = new BigDecimal(0);
        BigDecimal sphzpspcykpxzxjhj = new BigDecimal(0);


        for (NkYssbhjPx nkYssbhjys1 : nkYssbhjPX) {
            BigDecimal fpxrs = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxrs()).orElse("0"));
            BigDecimal fpxf = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxfy()).orElse("0"));
            BigDecimal fskf = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFskf()).orElse("0"));
            BigDecimal fpxskxj = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxskxj()).orElse("0"));


            switch (nkYssbhjys1.getFks()) {
                case OaFlowConstant.KSMC_BGS:
                    bgspxrs = bgspxrs.add(fpxrs);
                    bgspxf = bgspxf.add(fpxf);
                    bgsszxj = bgsszxj.add(fskf);
                    bgspxhj = bgspxhj.add(fpxskxj);
                    break;
                case OaFlowConstant.KSMC_RJK:
                    rjkpxrs = rjkpxrs.add(fpxrs);
                    rjkpxf = rjkpxf.add(fpxf);
                    rjkszxj = rjkszxj.add(fskf);
                    rjkszxjhj = rjkszxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_ZLGLYKYK:
                    zlglykykpxrs = zlglykykpxrs.add(fpxrs);
                    zlglykykpxf = zlglykykpxf.add(fpxf);
                    zlglykykpxzxj = zlglykykpxzxj.add(fskf);
                    zlglykykpxzxjhj = zlglykykpxzxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_YPZCSPCYK:
                    ypzcspcykpxrs = ypzcspcykpxrs.add(fpxrs);
                    ypzcspcykpxf = ypzcspcykpxf.add(fpxf);
                    ypzcspcykpxzxj = ypzcspcykpxzxj.add(fskf);
                    ypzcspcykpxzxjhj = ypzcspcykpxzxjhj.add(fpxskxj);


                    break;
                case OaFlowConstant.KSMC_YPSCCYK:
                    ypsccykpxrs = ypsccykpxrs.add(fpxrs);
                    ypsccykpxf = ypsccykpxf.add(fpxf);
                    ypsccykpxzxj = ypsccykpxzxj.add(fskf);
                    ypsccykpxzxjhj = ypsccykpxzxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_YPLTCYK:
                    ypltcykcpxrs = ypltcykcpxrs.add(fpxrs);
                    ypltcykcpxf = ypltcykcpxf.add(fpxf);
                    ypltcykcpxzxj = ypltcykcpxzxj.add(fskf);
                    ypltcykcpxzxjhj = ypltcykcpxzxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_YLQXSPCYK_1:
                    ylqxspcykykpxrs = ylqxspcykykpxrs.add(fpxrs);
                    ylqxspcykykpxf = ylqxspcykykpxf.add(fpxf);
                    ylqxspcykykpxzxj = ylqxspcykykpxzxj.add(fskf);
                    ylqxspcykykpxzxjhj = ylqxspcykykpxzxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_YLQXSPCYK_2:
                    ylqxspcykekpxrs = ylqxspcykekpxrs.add(fpxrs);
                    ylqxspcykekpxf = ylqxspcykekpxf.add(fpxf);
                    ylqxspcykekpxzxj = ylqxspcykekpxzxj.add(fskf);
                    ylqxspcykekpxzxjhj = ylqxspcykekpxzxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_SPHZPPSCYK:
                    sphzpspcykpxrs = sphzpspcykpxrs.add(fpxrs);
                    sphzpspcykpxf = sphzpspcykpxf.add(fpxf);
                    sphzpspcykpxzxj = sphzpspcykpxzxj.add(fskf);
                    sphzpspcykpxzxjhj = sphzpspcykpxzxjhj.add(fpxskxj);

                    break;
                default:
                    // 处理其他情况或无需处理
                    break;
            }
        }
        bgshj.put("name", "办公室");
        bgshj.put("pxrs", bgspxrs);
        bgshj.put("pxf", bgspxf);
        bgshj.put("szfy", bgsszxj);
        bgshj.put("pxhj", bgspxhj);

        //人教科
        rjkhj.put("name", "人教科");
        rjkhj.put("pxrs", rjkpxrs);
        rjkhj.put("pxf", rjkpxf);
        rjkhj.put("szfy", rjkszxj);
        rjkhj.put("pxhj", rjkszxjhj);


        //质量管理与科研科
        zlglykykhj.put("name", "质量管理与科研科");
        zlglykykhj.put("pxrs", zlglykykpxrs);
        zlglykykhj.put("pxf", zlglykykpxf);
        zlglykykhj.put("szfy", zlglykykpxzxj);
        zlglykykhj.put("pxhj", zlglykykpxzxjhj);


        //药品注册审评查验科合计
        ypzcspcykhj.put("name", "药品注册审评查验科");
        ypzcspcykhj.put("pxrs", ypzcspcykpxrs);
        ypzcspcykhj.put("pxf", ypzcspcykpxf);
        ypzcspcykhj.put("szfy", ypzcspcykpxzxj);
        ypzcspcykhj.put("pxhj", ypzcspcykpxzxjhj);


        //药品生产查验科
        ypsccykhj.put("name", "药品生产查验科");
        ypsccykhj.put("pxrs", ypsccykpxrs);
        ypsccykhj.put("pxf", ypsccykpxf);
        ypsccykhj.put("szfy", ypsccykpxzxj);
        ypsccykhj.put("pxhj", ypsccykpxzxjhj);


        //药品流通查验科
        ypltcykhj.put("name", "药品流通查验科");
        ypltcykhj.put("pxrs", ypltcykcpxrs);
        ypltcykhj.put("pxf", ypltcykcpxf);
        ypltcykhj.put("szfy", ypltcykcpxzxj);
        ypltcykhj.put("pxhj", ypltcykcpxzxjhj);


        //医疗器械审评查验1科
        ylqxspcykykhj.put("name", "医疗器械审评查验1科");
        ylqxspcykykhj.put("pxrs", ylqxspcykykpxrs);
        ylqxspcykykhj.put("pxf", ylqxspcykekpxf);
        ylqxspcykykhj.put("szfy", ylqxspcykykpxzxj);
        ylqxspcykekhj.put("pxhj", ylqxspcykekpxzxjhj);


        //医疗器械审评查验2科
        ylqxspcykekhj.put("name", "医疗器械审评查验2科");
        ylqxspcykekhj.put("pxrs", ylqxspcykekpxrs);
        ylqxspcykekhj.put("pxf", ylqxspcykekpxf);
        ylqxspcykekhj.put("szfy", ylqxspcykekpxzxj);
        ylqxspcykekhj.put("pxhj", ylqxspcykekpxzxjhj);


        //食品化妆品评审查验科
        sphzpspcykhj.put("name", "食品化妆品评审查验科");
        sphzpspcykhj.put("pxrs", sphzpspcykpxrs);
        sphzpspcykhj.put("pxf", sphzpspcykpxf);
        sphzpspcykhj.put("szfy", sphzpspcykpxzxj);
        sphzpspcykhj.put("pxhj", sphzpspcykpxzxjhj);


        //总计
        HashMap zjmap = new HashMap();
        zjmap.put("name", "总计");
        zjmap.put("pxrs", bgspxrs.add(rjkpxrs).add(zlglykykpxrs).add(ypzcspcykpxrs).add(ypsccykpxrs)
                .add(ypltcykcpxrs).add(ylqxspcykykpxrs).add(ylqxspcykekpxrs).add(sphzpspcykpxrs));
        zjmap.put("pxf", bgspxf.add(rjkpxf).add(zlglykykpxf).add(ypzcspcykpxf).add(ypsccykpxf)
                .add(ypltcykcpxf).add(ylqxspcykykpxf).add(ylqxspcykekpxf).add(sphzpspcykpxf));
        zjmap.put("szfy", bgsszxj.add(rjkszxj).add(zlglykykpxzxj).add(ypzcspcykpxzxj).add(ypsccykpxzxj)
                .add(ypltcykcpxzxj).add(ylqxspcykykpxzxj).add(ylqxspcykekpxzxj).add(sphzpspcykpxzxj));
        zjmap.put("pxhj", bgspxhj.add(rjkszxjhj).add(zlglykykpxzxjhj).add(ypzcspcykpxzxjhj).add(ypsccykpxzxjhj)
                .add(ypltcykcpxzxjhj).add(ylqxspcykykpxzxjhj).add(ylqxspcykekpxzxjhj).add(sphzpspcykpxzxjhj));



        allList.add(bgshj);
        allList.add(rjkhj);
        allList.add(zlglykykhj);

        allList.add(ypzcspcykhj);
        allList.add(ypsccykhj);
        allList.add(ypltcykhj);
        allList.add(ylqxspcykykhj);
        allList.add(ylqxspcykekhj);
        allList.add(sphzpspcykhj);
        allList.add(zjmap);
        return allList;
    }

    /**
     * 编辑一上-没有编辑返回id-培训
     */
    public List editYspxs(NkYssbhjPx nkYssbhjPx) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjPx.getFyssbjhid())) {

            //办公室
            Map bgshj = new HashMap<>();
            //人教科
            Map rjkhj = new HashMap<>();
            //质量管理与科研科
            Map zlglykykhj = new HashMap<>();

            HashMap ypzcspcykhj = new HashMap();
            //药品生产查验科
            Map ypsccykhj = new HashMap<>();
            //药品流通查验科
            Map ypltcykhj = new HashMap<>();
            //医疗器械审评查验1科
            Map ylqxspcykykhj = new HashMap<>();
            //医疗器械审评查验2科
            Map ylqxspcykekhj = new HashMap<>();
            //食品化妆品评审查验科
            Map sphzpspcykhj = new HashMap<>();

            //通过计划id，可以直接拿到预算表本计划的汇总
            List<NkYssbhjPx> nkYssbhjPX = nkYssbhjpxService.list(new LambdaQueryWrapper<NkYssbhjPx>()
                    .eq(NkYssbhjPx::getFyssbjhid, nkYssbhjPx.getFyssbjhid())
                    .eq(NkYssbhjPx::getFlx, OaFlowConstant.YSSBLC_CWSH_YS));

            //各个部门的数据集合
            //办公室
            //培训人数 培训费 师资小计 合计
            BigDecimal bgspxrs = new BigDecimal(0);
            BigDecimal bgspxf = new BigDecimal(0);
            BigDecimal bgsszxj = new BigDecimal(0);
            BigDecimal bgspxhj = new BigDecimal(0);


            //人教科
            BigDecimal rjkpxrs = new BigDecimal(0);
            BigDecimal rjkpxf = new BigDecimal(0);
            BigDecimal rjkszxj = new BigDecimal(0);
            BigDecimal rjkszxjhj = new BigDecimal(0);

            //质量管理与科研科
            BigDecimal zlglykykpxrs = new BigDecimal(0);
            BigDecimal zlglykykpxf = new BigDecimal(0);
            BigDecimal zlglykykpxzxj = new BigDecimal(0);
            BigDecimal zlglykykpxzxjhj = new BigDecimal(0);


            //药品注册审评查验科
            BigDecimal ypzcspcykpxrs = new BigDecimal(0);
            BigDecimal ypzcspcykpxf = new BigDecimal(0);
            BigDecimal ypzcspcykpxzxj = new BigDecimal(0);
            BigDecimal ypzcspcykpxzxjhj = new BigDecimal(0);


            //药品生产查验科
            BigDecimal ypsccykpxrs = new BigDecimal(0);
            BigDecimal ypsccykpxf = new BigDecimal(0);
            BigDecimal ypsccykpxzxj = new BigDecimal(0);
            BigDecimal ypsccykpxzxjhj = new BigDecimal(0);

            //药品流通查验科
            BigDecimal ypltcykcpxrs = new BigDecimal(0);
            BigDecimal ypltcykcpxf = new BigDecimal(0);
            BigDecimal ypltcykcpxzxj = new BigDecimal(0);
            BigDecimal ypltcykcpxzxjhj = new BigDecimal(0);

            //医疗器械审评查验1科
            BigDecimal ylqxspcykykpxrs = new BigDecimal(0);
            BigDecimal ylqxspcykykpxf = new BigDecimal(0);
            BigDecimal ylqxspcykykpxzxj = new BigDecimal(0);
            BigDecimal ylqxspcykykpxzxjhj = new BigDecimal(0);

            //医疗器械审评查验2科
            BigDecimal ylqxspcykekpxrs = new BigDecimal(0);
            BigDecimal ylqxspcykekpxf = new BigDecimal(0);
            BigDecimal ylqxspcykekpxzxj = new BigDecimal(0);
            BigDecimal ylqxspcykekpxzxjhj = new BigDecimal(0);

            //食品化妆品评审查验科
            BigDecimal sphzpspcykpxrs = new BigDecimal(0);
            BigDecimal sphzpspcykpxf = new BigDecimal(0);
            BigDecimal sphzpspcykpxzxj = new BigDecimal(0);
            BigDecimal sphzpspcykpxzxjhj = new BigDecimal(0);


            for (NkYssbhjPx nkYssbhjys1 : nkYssbhjPX) {
                BigDecimal fpxrs = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxrs()).orElse("0"));
                BigDecimal fpxf = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxfy()).orElse("0"));
                BigDecimal fskf = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFskf()).orElse("0"));
                BigDecimal fpxskxj = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxskxj()).orElse("0"));


                switch (nkYssbhjys1.getFks()) {
                    case OaFlowConstant.KSMC_BGS:
                        bgspxrs = bgspxrs.add(fpxrs);
                        bgspxf = bgspxf.add(fpxf);
                        bgsszxj = bgsszxj.add(fskf);
                        bgspxhj = bgspxhj.add(fpxskxj);
                        break;
                    case OaFlowConstant.KSMC_RJK:
                        rjkpxrs = rjkpxrs.add(fpxrs);
                        rjkpxf = rjkpxf.add(fpxf);
                        rjkszxj = rjkszxj.add(fskf);
                        rjkszxjhj = rjkszxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_ZLGLYKYK:
                        zlglykykpxrs = zlglykykpxrs.add(fpxrs);
                        zlglykykpxf = zlglykykpxf.add(fpxf);
                        zlglykykpxzxj = zlglykykpxzxj.add(fskf);
                        zlglykykpxzxjhj = zlglykykpxzxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_YPZCSPCYK:
                        ypzcspcykpxrs = ypzcspcykpxrs.add(fpxrs);
                        ypzcspcykpxf = ypzcspcykpxf.add(fpxf);
                        ypzcspcykpxzxj = ypzcspcykpxzxj.add(fskf);
                        ypzcspcykpxzxjhj = ypzcspcykpxzxjhj.add(fpxskxj);


                        break;
                    case OaFlowConstant.KSMC_YPSCCYK:
                        ypsccykpxrs = ypsccykpxrs.add(fpxrs);
                        ypsccykpxf = ypsccykpxf.add(fpxf);
                        ypsccykpxzxj = ypsccykpxzxj.add(fskf);
                        ypsccykpxzxjhj = ypsccykpxzxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_YPLTCYK:
                        ypltcykcpxrs = ypltcykcpxrs.add(fpxrs);
                        ypltcykcpxf = ypltcykcpxf.add(fpxf);
                        ypltcykcpxzxj = ypltcykcpxzxj.add(fskf);
                        ypltcykcpxzxjhj = ypltcykcpxzxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_1:
                        ylqxspcykykpxrs = ylqxspcykykpxrs.add(fpxrs);
                        ylqxspcykykpxf = ylqxspcykykpxf.add(fpxf);
                        ylqxspcykykpxzxj = ylqxspcykykpxzxj.add(fskf);
                        ylqxspcykykpxzxjhj = ylqxspcykykpxzxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_2:
                        ylqxspcykekpxrs = ylqxspcykekpxrs.add(fpxrs);
                        ylqxspcykekpxf = ylqxspcykekpxf.add(fpxf);
                        ylqxspcykekpxzxj = ylqxspcykekpxzxj.add(fskf);
                        ylqxspcykekpxzxjhj = ylqxspcykekpxzxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_SPHZPPSCYK:
                        sphzpspcykpxrs = sphzpspcykpxrs.add(fpxrs);
                        sphzpspcykpxf = sphzpspcykpxf.add(fpxf);
                        sphzpspcykpxzxj = sphzpspcykpxzxj.add(fskf);
                        sphzpspcykpxzxjhj = sphzpspcykpxzxjhj.add(fpxskxj);

                        break;
                    default:
                        // 处理其他情况或无需处理
                        break;
                }
            }
            bgshj.put("name", "办公室");
            bgshj.put("pxrs", bgspxrs);
            bgshj.put("pxf", bgspxf);
            bgshj.put("szfy", bgsszxj);
            bgshj.put("pxhj", bgspxhj);

            //人教科
            rjkhj.put("name", "人教科");
            rjkhj.put("pxrs", rjkpxrs);
            rjkhj.put("pxf", rjkpxf);
            rjkhj.put("szfy", rjkszxj);
            rjkhj.put("pxhj", rjkszxjhj);


            //质量管理与科研科
            zlglykykhj.put("name", "质量管理与科研科");
            zlglykykhj.put("pxrs", zlglykykpxrs);
            zlglykykhj.put("pxf", zlglykykpxf);
            zlglykykhj.put("szfy", zlglykykpxzxj);
            zlglykykhj.put("pxhj", zlglykykpxzxjhj);


            //药品注册审评查验科合计
            ypzcspcykhj.put("name", "药品注册审评查验科");
            ypzcspcykhj.put("pxrs", ypzcspcykpxrs);
            ypzcspcykhj.put("pxf", ypzcspcykpxf);
            ypzcspcykhj.put("szfy", ypzcspcykpxzxj);
            ypzcspcykhj.put("pxhj", ypzcspcykpxzxjhj);


            //药品生产查验科
            ypsccykhj.put("name", "药品生产查验科");
            ypsccykhj.put("pxrs", ypsccykpxrs);
            ypsccykhj.put("pxf", ypsccykpxf);
            ypsccykhj.put("szfy", ypsccykpxzxj);
            ypsccykhj.put("pxhj", ypsccykpxzxjhj);


            //药品流通查验科
            ypltcykhj.put("name", "药品流通查验科");
            ypltcykhj.put("pxrs", ypltcykcpxrs);
            ypltcykhj.put("pxf", ypltcykcpxf);
            ypltcykhj.put("szfy", ypltcykcpxzxj);
            ypltcykhj.put("pxhj", ypltcykcpxzxjhj);


            //医疗器械审评查验1科
            ylqxspcykykhj.put("name", "医疗器械审评查验1科");
            ylqxspcykykhj.put("pxrs", ylqxspcykykpxrs);
            ylqxspcykykhj.put("pxf", ylqxspcykekpxf);
            ylqxspcykykhj.put("szfy", ylqxspcykykpxzxj);
            ylqxspcykekhj.put("pxhj", ylqxspcykekpxzxjhj);


            //医疗器械审评查验2科
            ylqxspcykekhj.put("name", "医疗器械审评查验2科");
            ylqxspcykekhj.put("pxrs", ylqxspcykekpxrs);
            ylqxspcykekhj.put("pxf", ylqxspcykekpxf);
            ylqxspcykekhj.put("szfy", ylqxspcykekpxzxj);
            ylqxspcykekhj.put("pxhj", ylqxspcykekpxzxjhj);


            //食品化妆品评审查验科
            sphzpspcykhj.put("name", "食品化妆品评审查验科");
            sphzpspcykhj.put("pxrs", sphzpspcykpxrs);
            sphzpspcykhj.put("pxf", sphzpspcykpxf);
            sphzpspcykhj.put("szfy", sphzpspcykpxzxj);
            sphzpspcykhj.put("pxhj", sphzpspcykpxzxjhj);


            //总计
            HashMap zjmap = new HashMap();
            zjmap.put("name", "总计");
            zjmap.put("pxrs", bgspxrs.add(rjkpxrs).add(zlglykykpxrs).add(ypzcspcykpxrs).add(ypsccykpxrs)
                    .add(ypltcykcpxrs).add(ylqxspcykykpxrs).add(ylqxspcykekpxrs).add(sphzpspcykpxrs));
            zjmap.put("pxf", bgspxf.add(rjkpxf).add(zlglykykpxf).add(ypzcspcykpxf).add(ypsccykpxf)
                    .add(ypltcykcpxf).add(ylqxspcykykpxf).add(ylqxspcykekpxf).add(sphzpspcykpxf));
            zjmap.put("szfy", bgsszxj.add(rjkszxj).add(zlglykykpxzxj).add(ypzcspcykpxzxj).add(ypsccykpxzxj)
                    .add(ypltcykcpxzxj).add(ylqxspcykykpxzxj).add(ylqxspcykekpxzxj).add(sphzpspcykpxzxj));
            zjmap.put("pxhj", bgspxhj.add(rjkszxjhj).add(zlglykykpxzxjhj).add(ypzcspcykpxzxjhj).add(ypsccykpxzxjhj)
                    .add(ypltcykcpxzxjhj).add(ylqxspcykykpxzxjhj).add(ylqxspcykekpxzxjhj).add(sphzpspcykpxzxjhj));


            allList.add(bgshj);
            allList.add(rjkhj);
            allList.add(zlglykykhj);

            allList.add(ypzcspcykhj);
            allList.add(ypsccykhj);
            allList.add(ypltcykhj);
            allList.add(ylqxspcykykhj);
            allList.add(ylqxspcykekhj);
            allList.add(sphzpspcykhj);
            allList.add(zjmap);
        }
        return allList;
    }


    /**
     * 编辑二上-培训
     */
    public List editEspx(NkYssbhjPx nkYssbhjPx) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjPx.getId())) {
            NkYssbhjPx nkYssbhjPx1 = nkYssbhjpxService.getById(nkYssbhjPx.getId());
            //如果不为空，在继续判断
            if (nkYssbhjPx1 != null) {
                //如果不为空，先将字段更新进表内，在查询然后计算
                nkYssbhjpxService.updateById(nkYssbhjPx);
            }

        }
        NkYssbhjPx nkYssbhjys2 = nkYssbhjpxService.getById(nkYssbhjPx.getId());
        //培训费用
        BigDecimal fpxfy = new BigDecimal(0);
        //正高费用
        BigDecimal zgfy = new BigDecimal(0);
        //副高费用
        BigDecimal fgfy = new BigDecimal(0);


        //培训费用 以及 授课费计算
        if (StringUtils.isNotBlank(nkYssbhjys2.getFpxrs()) &&
                StringUtils.isNotBlank(nkYssbhjys2.getFpxts())) {

            fpxfy = new BigDecimal(nkYssbhjys2.getFpxrs())
                    .multiply(new BigDecimal(nkYssbhjys2.getFpxts())
                            .multiply(new BigDecimal("400")));

            nkYssbhjys2.setFpxfy(String.valueOf(fpxfy));
        }

        //正高费用
        if (StringUtils.isNotBlank(nkYssbhjys2.getFpxts()) &&
                StringUtils.isNotBlank(nkYssbhjys2.getFzgxs())) {
            zgfy = new BigDecimal(nkYssbhjys2.getFpxts())
                    .multiply(new BigDecimal(nkYssbhjys2.getFzgxs()))
                    .multiply(new BigDecimal("1000"));

            nkYssbhjys2.setFzgfy(String.valueOf(zgfy));
        }

        //副高费用
        if (StringUtils.isNotBlank(nkYssbhjys2.getFpxts()) &&
                StringUtils.isNotBlank(nkYssbhjys2.getFfgxs())) {
            fgfy = new BigDecimal(nkYssbhjys2.getFpxts())
                    .multiply(new BigDecimal(nkYssbhjys2.getFfgxs()))
                    .multiply(new BigDecimal("500"));

            nkYssbhjys2.setFfgfy(String.valueOf(fgfy));
        }

        //授课费用 = 正高费用 + 副高费用
        BigDecimal skfy = zgfy.add(fgfy);

        //培训授课小计 = 培训费用 + 正高 + 副高
        BigDecimal xj = fpxfy.add(zgfy).add(fgfy);

        nkYssbhjys2.setFskf(String.valueOf(skfy));
        nkYssbhjys2.setFpxskxj(String.valueOf(xj));
        nkYssbhjpxService.updateById(nkYssbhjys2);



        //办公室
        Map bgshj = new HashMap<>();
        //人教科
        Map rjkhj = new HashMap<>();
        //质量管理与科研科
        Map zlglykykhj = new HashMap<>();

        HashMap ypzcspcykhj = new HashMap();
        //药品生产查验科
        Map ypsccykhj = new HashMap<>();
        //药品流通查验科
        Map ypltcykhj = new HashMap<>();
        //医疗器械审评查验1科
        Map ylqxspcykykhj = new HashMap<>();
        //医疗器械审评查验2科
        Map ylqxspcykekhj = new HashMap<>();
        //食品化妆品评审查验科
        Map sphzpspcykhj = new HashMap<>();

        //通过计划id，可以直接拿到预算表本计划的汇总
        List<NkYssbhjPx> nkYssbhjPX = nkYssbhjpxService.list(new LambdaQueryWrapper<NkYssbhjPx>()
                .eq(NkYssbhjPx::getFyssbjhid, nkYssbhjys2.getFyssbjhid())
                .eq(NkYssbhjPx::getFlx, OaFlowConstant.YSSBLC_CWSH_ES));

        //各个部门的数据集合
        //办公室
        //培训人数 培训费 师资小计 合计
        BigDecimal bgspxrs = new BigDecimal(0);
        BigDecimal bgspxf = new BigDecimal(0);
        BigDecimal bgsszxj = new BigDecimal(0);
        BigDecimal bgspxhj = new BigDecimal(0);


        //人教科
        BigDecimal rjkpxrs = new BigDecimal(0);
        BigDecimal rjkpxf = new BigDecimal(0);
        BigDecimal rjkszxj = new BigDecimal(0);
        BigDecimal rjkszxjhj = new BigDecimal(0);

        //质量管理与科研科
        BigDecimal zlglykykpxrs = new BigDecimal(0);
        BigDecimal zlglykykpxf = new BigDecimal(0);
        BigDecimal zlglykykpxzxj = new BigDecimal(0);
        BigDecimal zlglykykpxzxjhj = new BigDecimal(0);


        //药品注册审评查验科
        BigDecimal ypzcspcykpxrs = new BigDecimal(0);
        BigDecimal ypzcspcykpxf = new BigDecimal(0);
        BigDecimal ypzcspcykpxzxj = new BigDecimal(0);
        BigDecimal ypzcspcykpxzxjhj = new BigDecimal(0);


        //药品生产查验科
        BigDecimal ypsccykpxrs = new BigDecimal(0);
        BigDecimal ypsccykpxf = new BigDecimal(0);
        BigDecimal ypsccykpxzxj = new BigDecimal(0);
        BigDecimal ypsccykpxzxjhj = new BigDecimal(0);

        //药品流通查验科
        BigDecimal ypltcykcpxrs = new BigDecimal(0);
        BigDecimal ypltcykcpxf = new BigDecimal(0);
        BigDecimal ypltcykcpxzxj = new BigDecimal(0);
        BigDecimal ypltcykcpxzxjhj = new BigDecimal(0);

        //医疗器械审评查验1科
        BigDecimal ylqxspcykykpxrs = new BigDecimal(0);
        BigDecimal ylqxspcykykpxf = new BigDecimal(0);
        BigDecimal ylqxspcykykpxzxj = new BigDecimal(0);
        BigDecimal ylqxspcykykpxzxjhj = new BigDecimal(0);

        //医疗器械审评查验2科
        BigDecimal ylqxspcykekpxrs = new BigDecimal(0);
        BigDecimal ylqxspcykekpxf = new BigDecimal(0);
        BigDecimal ylqxspcykekpxzxj = new BigDecimal(0);
        BigDecimal ylqxspcykekpxzxjhj = new BigDecimal(0);

        //食品化妆品评审查验科
        BigDecimal sphzpspcykpxrs = new BigDecimal(0);
        BigDecimal sphzpspcykpxf = new BigDecimal(0);
        BigDecimal sphzpspcykpxzxj = new BigDecimal(0);
        BigDecimal sphzpspcykpxzxjhj = new BigDecimal(0);


        for (NkYssbhjPx nkYssbhjys1 : nkYssbhjPX) {
            BigDecimal fpxrs = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxrs()).orElse("0"));
            BigDecimal fpxf = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxfy()).orElse("0"));
            BigDecimal fskf = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFskf()).orElse("0"));
            BigDecimal fpxskxj = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxskxj()).orElse("0"));


            switch (nkYssbhjys1.getFks()) {
                case OaFlowConstant.KSMC_BGS:
                    bgspxrs = bgspxrs.add(fpxrs);
                    bgspxf = bgspxf.add(fpxf);
                    bgsszxj = bgsszxj.add(fskf);
                    bgspxhj = bgspxhj.add(fpxskxj);
                    break;
                case OaFlowConstant.KSMC_RJK:
                    rjkpxrs = rjkpxrs.add(fpxrs);
                    rjkpxf = rjkpxf.add(fpxf);
                    rjkszxj = rjkszxj.add(fskf);
                    rjkszxjhj = rjkszxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_ZLGLYKYK:
                    zlglykykpxrs = zlglykykpxrs.add(fpxrs);
                    zlglykykpxf = zlglykykpxf.add(fpxf);
                    zlglykykpxzxj = zlglykykpxzxj.add(fskf);
                    zlglykykpxzxjhj = zlglykykpxzxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_YPZCSPCYK:
                    ypzcspcykpxrs = ypzcspcykpxrs.add(fpxrs);
                    ypzcspcykpxf = ypzcspcykpxf.add(fpxf);
                    ypzcspcykpxzxj = ypzcspcykpxzxj.add(fskf);
                    ypzcspcykpxzxjhj = ypzcspcykpxzxjhj.add(fpxskxj);


                    break;
                case OaFlowConstant.KSMC_YPSCCYK:
                    ypsccykpxrs = ypsccykpxrs.add(fpxrs);
                    ypsccykpxf = ypsccykpxf.add(fpxf);
                    ypsccykpxzxj = ypsccykpxzxj.add(fskf);
                    ypsccykpxzxjhj = ypsccykpxzxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_YPLTCYK:
                    ypltcykcpxrs = ypltcykcpxrs.add(fpxrs);
                    ypltcykcpxf = ypltcykcpxf.add(fpxf);
                    ypltcykcpxzxj = ypltcykcpxzxj.add(fskf);
                    ypltcykcpxzxjhj = ypltcykcpxzxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_YLQXSPCYK_1:
                    ylqxspcykykpxrs = ylqxspcykykpxrs.add(fpxrs);
                    ylqxspcykykpxf = ylqxspcykykpxf.add(fpxf);
                    ylqxspcykykpxzxj = ylqxspcykykpxzxj.add(fskf);
                    ylqxspcykykpxzxjhj = ylqxspcykykpxzxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_YLQXSPCYK_2:
                    ylqxspcykekpxrs = ylqxspcykekpxrs.add(fpxrs);
                    ylqxspcykekpxf = ylqxspcykekpxf.add(fpxf);
                    ylqxspcykekpxzxj = ylqxspcykekpxzxj.add(fskf);
                    ylqxspcykekpxzxjhj = ylqxspcykekpxzxjhj.add(fpxskxj);

                    break;
                case OaFlowConstant.KSMC_SPHZPPSCYK:
                    sphzpspcykpxrs = sphzpspcykpxrs.add(fpxrs);
                    sphzpspcykpxf = sphzpspcykpxf.add(fpxf);
                    sphzpspcykpxzxj = sphzpspcykpxzxj.add(fskf);
                    sphzpspcykpxzxjhj = sphzpspcykpxzxjhj.add(fpxskxj);

                    break;
                default:
                    // 处理其他情况或无需处理
                    break;
            }
        }
        bgshj.put("name", "办公室");
        bgshj.put("pxrs", bgspxrs);
        bgshj.put("pxf", bgspxf);
        bgshj.put("szfy", bgsszxj);
        bgshj.put("pxhj", bgspxhj);

        //人教科
        rjkhj.put("name", "人教科");
        rjkhj.put("pxrs", rjkpxrs);
        rjkhj.put("pxf", rjkpxf);
        rjkhj.put("szfy", rjkszxj);
        rjkhj.put("pxhj", rjkszxjhj);


        //质量管理与科研科
        zlglykykhj.put("name", "质量管理与科研科");
        zlglykykhj.put("pxrs", zlglykykpxrs);
        zlglykykhj.put("pxf", zlglykykpxf);
        zlglykykhj.put("szfy", zlglykykpxzxj);
        zlglykykhj.put("pxhj", zlglykykpxzxjhj);


        //药品注册审评查验科合计
        ypzcspcykhj.put("name", "药品注册审评查验科");
        ypzcspcykhj.put("pxrs", ypzcspcykpxrs);
        ypzcspcykhj.put("pxf", ypzcspcykpxf);
        ypzcspcykhj.put("szfy", ypzcspcykpxzxj);
        ypzcspcykhj.put("pxhj", ypzcspcykpxzxjhj);


        //药品生产查验科
        ypsccykhj.put("name", "药品生产查验科");
        ypsccykhj.put("pxrs", ypsccykpxrs);
        ypsccykhj.put("pxf", ypsccykpxf);
        ypsccykhj.put("szfy", ypsccykpxzxj);
        ypsccykhj.put("pxhj", ypsccykpxzxjhj);


        //药品流通查验科
        ypltcykhj.put("name", "药品流通查验科");
        ypltcykhj.put("pxrs", ypltcykcpxrs);
        ypltcykhj.put("pxf", ypltcykcpxf);
        ypltcykhj.put("szfy", ypltcykcpxzxj);
        ypltcykhj.put("pxhj", ypltcykcpxzxjhj);


        //医疗器械审评查验1科
        ylqxspcykykhj.put("name", "医疗器械审评查验1科");
        ylqxspcykykhj.put("pxrs", ylqxspcykykpxrs);
        ylqxspcykykhj.put("pxf", ylqxspcykekpxf);
        ylqxspcykykhj.put("szfy", ylqxspcykykpxzxj);
        ylqxspcykekhj.put("pxhj", ylqxspcykekpxzxjhj);


        //医疗器械审评查验2科
        ylqxspcykekhj.put("name", "医疗器械审评查验2科");
        ylqxspcykekhj.put("pxrs", ylqxspcykekpxrs);
        ylqxspcykekhj.put("pxf", ylqxspcykekpxf);
        ylqxspcykekhj.put("szfy", ylqxspcykekpxzxj);
        ylqxspcykekhj.put("pxhj", ylqxspcykekpxzxjhj);


        //食品化妆品评审查验科
        sphzpspcykhj.put("name", "食品化妆品评审查验科");
        sphzpspcykhj.put("pxrs", sphzpspcykpxrs);
        sphzpspcykhj.put("pxf", sphzpspcykpxf);
        sphzpspcykhj.put("szfy", sphzpspcykpxzxj);
        sphzpspcykhj.put("pxhj", sphzpspcykpxzxjhj);


        //总计
        HashMap zjmap = new HashMap();
        zjmap.put("name", "总计");
        zjmap.put("pxrs", bgspxrs.add(rjkpxrs).add(zlglykykpxrs).add(ypzcspcykpxrs).add(ypsccykpxrs)
                .add(ypltcykcpxrs).add(ylqxspcykykpxrs).add(ylqxspcykekpxrs).add(sphzpspcykpxrs));
        zjmap.put("pxf", bgspxf.add(rjkpxf).add(zlglykykpxf).add(ypzcspcykpxf).add(ypsccykpxf)
                .add(ypltcykcpxf).add(ylqxspcykykpxf).add(ylqxspcykekpxf).add(sphzpspcykpxf));
        zjmap.put("szfy", bgsszxj.add(rjkszxj).add(zlglykykpxzxj).add(ypzcspcykpxzxj).add(ypsccykpxzxj)
                .add(ypltcykcpxzxj).add(ylqxspcykykpxzxj).add(ylqxspcykekpxzxj).add(sphzpspcykpxzxj));
        zjmap.put("pxhj", bgspxhj.add(rjkszxjhj).add(zlglykykpxzxjhj).add(ypzcspcykpxzxjhj).add(ypsccykpxzxjhj)
                .add(ypltcykcpxzxjhj).add(ylqxspcykykpxzxjhj).add(ylqxspcykekpxzxjhj).add(sphzpspcykpxzxjhj));



        allList.add(bgshj);
        allList.add(rjkhj);
        allList.add(zlglykykhj);

        allList.add(ypzcspcykhj);
        allList.add(ypsccykhj);
        allList.add(ypltcykhj);
        allList.add(ylqxspcykykhj);
        allList.add(ylqxspcykekhj);
        allList.add(sphzpspcykhj);
        allList.add(zjmap);
        return allList;
    }


    /**
     * 编辑二上-没有编辑返回id-培训
     */
    public List editEspxs(NkYssbhjPx nkYssbhjPx) {
        List allList = new ArrayList<>();
        if (StringUtils.isNotBlank(nkYssbhjPx.getFyssbjhid())) {

            //办公室
            Map bgshj = new HashMap<>();
            //人教科
            Map rjkhj = new HashMap<>();
            //质量管理与科研科
            Map zlglykykhj = new HashMap<>();

            HashMap ypzcspcykhj = new HashMap();
            //药品生产查验科
            Map ypsccykhj = new HashMap<>();
            //药品流通查验科
            Map ypltcykhj = new HashMap<>();
            //医疗器械审评查验1科
            Map ylqxspcykykhj = new HashMap<>();
            //医疗器械审评查验2科
            Map ylqxspcykekhj = new HashMap<>();
            //食品化妆品评审查验科
            Map sphzpspcykhj = new HashMap<>();

            //通过计划id，可以直接拿到预算表本计划的汇总
            List<NkYssbhjPx> nkYssbhjPX = nkYssbhjpxService.list(new LambdaQueryWrapper<NkYssbhjPx>()
                    .eq(NkYssbhjPx::getFyssbjhid, nkYssbhjPx.getFyssbjhid())
                    .eq(NkYssbhjPx::getFlx, OaFlowConstant.YSSBLC_CWSH_ES));

            //各个部门的数据集合
            //办公室
            //培训人数 培训费 师资小计 合计
            BigDecimal bgspxrs = new BigDecimal(0);
            BigDecimal bgspxf = new BigDecimal(0);
            BigDecimal bgsszxj = new BigDecimal(0);
            BigDecimal bgspxhj = new BigDecimal(0);


            //人教科
            BigDecimal rjkpxrs = new BigDecimal(0);
            BigDecimal rjkpxf = new BigDecimal(0);
            BigDecimal rjkszxj = new BigDecimal(0);
            BigDecimal rjkszxjhj = new BigDecimal(0);

            //质量管理与科研科
            BigDecimal zlglykykpxrs = new BigDecimal(0);
            BigDecimal zlglykykpxf = new BigDecimal(0);
            BigDecimal zlglykykpxzxj = new BigDecimal(0);
            BigDecimal zlglykykpxzxjhj = new BigDecimal(0);


            //药品注册审评查验科
            BigDecimal ypzcspcykpxrs = new BigDecimal(0);
            BigDecimal ypzcspcykpxf = new BigDecimal(0);
            BigDecimal ypzcspcykpxzxj = new BigDecimal(0);
            BigDecimal ypzcspcykpxzxjhj = new BigDecimal(0);


            //药品生产查验科
            BigDecimal ypsccykpxrs = new BigDecimal(0);
            BigDecimal ypsccykpxf = new BigDecimal(0);
            BigDecimal ypsccykpxzxj = new BigDecimal(0);
            BigDecimal ypsccykpxzxjhj = new BigDecimal(0);

            //药品流通查验科
            BigDecimal ypltcykcpxrs = new BigDecimal(0);
            BigDecimal ypltcykcpxf = new BigDecimal(0);
            BigDecimal ypltcykcpxzxj = new BigDecimal(0);
            BigDecimal ypltcykcpxzxjhj = new BigDecimal(0);

            //医疗器械审评查验1科
            BigDecimal ylqxspcykykpxrs = new BigDecimal(0);
            BigDecimal ylqxspcykykpxf = new BigDecimal(0);
            BigDecimal ylqxspcykykpxzxj = new BigDecimal(0);
            BigDecimal ylqxspcykykpxzxjhj = new BigDecimal(0);

            //医疗器械审评查验2科
            BigDecimal ylqxspcykekpxrs = new BigDecimal(0);
            BigDecimal ylqxspcykekpxf = new BigDecimal(0);
            BigDecimal ylqxspcykekpxzxj = new BigDecimal(0);
            BigDecimal ylqxspcykekpxzxjhj = new BigDecimal(0);

            //食品化妆品评审查验科
            BigDecimal sphzpspcykpxrs = new BigDecimal(0);
            BigDecimal sphzpspcykpxf = new BigDecimal(0);
            BigDecimal sphzpspcykpxzxj = new BigDecimal(0);
            BigDecimal sphzpspcykpxzxjhj = new BigDecimal(0);


            for (NkYssbhjPx nkYssbhjys1 : nkYssbhjPX) {
                BigDecimal fpxrs = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxrs()).orElse("0"));
                BigDecimal fpxf = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxfy()).orElse("0"));
                BigDecimal fskf = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFskf()).orElse("0"));
                BigDecimal fpxskxj = new BigDecimal(Optional.ofNullable(nkYssbhjys1.getFpxskxj()).orElse("0"));


                switch (nkYssbhjys1.getFks()) {
                    case OaFlowConstant.KSMC_BGS:
                        bgspxrs = bgspxrs.add(fpxrs);
                        bgspxf = bgspxf.add(fpxf);
                        bgsszxj = bgsszxj.add(fskf);
                        bgspxhj = bgspxhj.add(fpxskxj);
                        break;
                    case OaFlowConstant.KSMC_RJK:
                        rjkpxrs = rjkpxrs.add(fpxrs);
                        rjkpxf = rjkpxf.add(fpxf);
                        rjkszxj = rjkszxj.add(fskf);
                        rjkszxjhj = rjkszxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_ZLGLYKYK:
                        zlglykykpxrs = zlglykykpxrs.add(fpxrs);
                        zlglykykpxf = zlglykykpxf.add(fpxf);
                        zlglykykpxzxj = zlglykykpxzxj.add(fskf);
                        zlglykykpxzxjhj = zlglykykpxzxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_YPZCSPCYK:
                        ypzcspcykpxrs = ypzcspcykpxrs.add(fpxrs);
                        ypzcspcykpxf = ypzcspcykpxf.add(fpxf);
                        ypzcspcykpxzxj = ypzcspcykpxzxj.add(fskf);
                        ypzcspcykpxzxjhj = ypzcspcykpxzxjhj.add(fpxskxj);


                        break;
                    case OaFlowConstant.KSMC_YPSCCYK:
                        ypsccykpxrs = ypsccykpxrs.add(fpxrs);
                        ypsccykpxf = ypsccykpxf.add(fpxf);
                        ypsccykpxzxj = ypsccykpxzxj.add(fskf);
                        ypsccykpxzxjhj = ypsccykpxzxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_YPLTCYK:
                        ypltcykcpxrs = ypltcykcpxrs.add(fpxrs);
                        ypltcykcpxf = ypltcykcpxf.add(fpxf);
                        ypltcykcpxzxj = ypltcykcpxzxj.add(fskf);
                        ypltcykcpxzxjhj = ypltcykcpxzxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_1:
                        ylqxspcykykpxrs = ylqxspcykykpxrs.add(fpxrs);
                        ylqxspcykykpxf = ylqxspcykykpxf.add(fpxf);
                        ylqxspcykykpxzxj = ylqxspcykykpxzxj.add(fskf);
                        ylqxspcykykpxzxjhj = ylqxspcykykpxzxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_YLQXSPCYK_2:
                        ylqxspcykekpxrs = ylqxspcykekpxrs.add(fpxrs);
                        ylqxspcykekpxf = ylqxspcykekpxf.add(fpxf);
                        ylqxspcykekpxzxj = ylqxspcykekpxzxj.add(fskf);
                        ylqxspcykekpxzxjhj = ylqxspcykekpxzxjhj.add(fpxskxj);

                        break;
                    case OaFlowConstant.KSMC_SPHZPPSCYK:
                        sphzpspcykpxrs = sphzpspcykpxrs.add(fpxrs);
                        sphzpspcykpxf = sphzpspcykpxf.add(fpxf);
                        sphzpspcykpxzxj = sphzpspcykpxzxj.add(fskf);
                        sphzpspcykpxzxjhj = sphzpspcykpxzxjhj.add(fpxskxj);

                        break;
                    default:
                        // 处理其他情况或无需处理
                        break;
                }
            }
            bgshj.put("name", "办公室");
            bgshj.put("pxrs", bgspxrs);
            bgshj.put("pxf", bgspxf);
            bgshj.put("szfy", bgsszxj);
            bgshj.put("pxhj", bgspxhj);

            //人教科
            rjkhj.put("name", "人教科");
            rjkhj.put("pxrs", rjkpxrs);
            rjkhj.put("pxf", rjkpxf);
            rjkhj.put("szfy", rjkszxj);
            rjkhj.put("pxhj", rjkszxjhj);


            //质量管理与科研科
            zlglykykhj.put("name", "质量管理与科研科");
            zlglykykhj.put("pxrs", zlglykykpxrs);
            zlglykykhj.put("pxf", zlglykykpxf);
            zlglykykhj.put("szfy", zlglykykpxzxj);
            zlglykykhj.put("pxhj", zlglykykpxzxjhj);


            //药品注册审评查验科合计
            ypzcspcykhj.put("name", "药品注册审评查验科");
            ypzcspcykhj.put("pxrs", ypzcspcykpxrs);
            ypzcspcykhj.put("pxf", ypzcspcykpxf);
            ypzcspcykhj.put("szfy", ypzcspcykpxzxj);
            ypzcspcykhj.put("pxhj", ypzcspcykpxzxjhj);


            //药品生产查验科
            ypsccykhj.put("name", "药品生产查验科");
            ypsccykhj.put("pxrs", ypsccykpxrs);
            ypsccykhj.put("pxf", ypsccykpxf);
            ypsccykhj.put("szfy", ypsccykpxzxj);
            ypsccykhj.put("pxhj", ypsccykpxzxjhj);


            //药品流通查验科
            ypltcykhj.put("name", "药品流通查验科");
            ypltcykhj.put("pxrs", ypltcykcpxrs);
            ypltcykhj.put("pxf", ypltcykcpxf);
            ypltcykhj.put("szfy", ypltcykcpxzxj);
            ypltcykhj.put("pxhj", ypltcykcpxzxjhj);


            //医疗器械审评查验1科
            ylqxspcykykhj.put("name", "医疗器械审评查验1科");
            ylqxspcykykhj.put("pxrs", ylqxspcykykpxrs);
            ylqxspcykykhj.put("pxf", ylqxspcykekpxf);
            ylqxspcykykhj.put("szfy", ylqxspcykykpxzxj);
            ylqxspcykekhj.put("pxhj", ylqxspcykekpxzxjhj);


            //医疗器械审评查验2科
            ylqxspcykekhj.put("name", "医疗器械审评查验2科");
            ylqxspcykekhj.put("pxrs", ylqxspcykekpxrs);
            ylqxspcykekhj.put("pxf", ylqxspcykekpxf);
            ylqxspcykekhj.put("szfy", ylqxspcykekpxzxj);
            ylqxspcykekhj.put("pxhj", ylqxspcykekpxzxjhj);


            //食品化妆品评审查验科
            sphzpspcykhj.put("name", "食品化妆品评审查验科");
            sphzpspcykhj.put("pxrs", sphzpspcykpxrs);
            sphzpspcykhj.put("pxf", sphzpspcykpxf);
            sphzpspcykhj.put("szfy", sphzpspcykpxzxj);
            sphzpspcykhj.put("pxhj", sphzpspcykpxzxjhj);


            //总计
            HashMap zjmap = new HashMap();
            zjmap.put("name", "总计");
            zjmap.put("pxrs", bgspxrs.add(rjkpxrs).add(zlglykykpxrs).add(ypzcspcykpxrs).add(ypsccykpxrs)
                    .add(ypltcykcpxrs).add(ylqxspcykykpxrs).add(ylqxspcykekpxrs).add(sphzpspcykpxrs));
            zjmap.put("pxf", bgspxf.add(rjkpxf).add(zlglykykpxf).add(ypzcspcykpxf).add(ypsccykpxf)
                    .add(ypltcykcpxf).add(ylqxspcykykpxf).add(ylqxspcykekpxf).add(sphzpspcykpxf));
            zjmap.put("szfy", bgsszxj.add(rjkszxj).add(zlglykykpxzxj).add(ypzcspcykpxzxj).add(ypsccykpxzxj)
                    .add(ypltcykcpxzxj).add(ylqxspcykykpxzxj).add(ylqxspcykekpxzxj).add(sphzpspcykpxzxj));
            zjmap.put("pxhj", bgspxhj.add(rjkszxjhj).add(zlglykykpxzxjhj).add(ypzcspcykpxzxjhj).add(ypsccykpxzxjhj)
                    .add(ypltcykcpxzxjhj).add(ylqxspcykykpxzxjhj).add(ylqxspcykekpxzxjhj).add(sphzpspcykpxzxjhj));


            allList.add(bgshj);
            allList.add(rjkhj);
            allList.add(zlglykykhj);

            allList.add(ypzcspcykhj);
            allList.add(ypsccykhj);
            allList.add(ypltcykhj);
            allList.add(ylqxspcykykhj);
            allList.add(ylqxspcykekhj);
            allList.add(sphzpspcykhj);
            allList.add(zjmap);
        }
        return allList;
    }

}
